ハードウェア固有の静的ライブラリでコンパイルするベンダー固有のOpenGLヘッダをコンパイルしましたが、nVidia Quadro 4000カードとライブラリlinux)。これは私たちのベンダーがホスト環境でやるべきだと言っているので、心配する必要はありません。動的リンクライブラリ(dll/so)のchar *タイプの関数パラメータ
私は何か奇妙なものが見つかりました。ベンダー固有のヘッダーにはGLcharが 'unsigned char'(sigh ...)とタイプされていましたが、nVidiaヘッダーはそれを 'char'とタイプしました。これらのタイプは同じではありませんが、それはまだ「動作します」。私は暗黙のうちにchar *をunsigned char *にキャストすることはできません。それは私にコンパイルエラーを与えますが、おそらく 'char'プロトタイプを使って構築された関数(glGetUniformLocation)ライブラリをリンクして正常に実行できます。
どうしましたか?ランタイムは 'char'が 'unsigned char'に "close-enough"であると判断して解決しましたか?あるいは、図書館を建てるときに、「char」の出現が一つの署名に拡張されているのか、それとも他のものに拡張されているのでしょうもしそうなら、3種類の署名のすべてを関数にオーバーロードするとどうなりますか?
編集:OpenGLライブラリはC-linkageを使用していることに注意してください。
右。私はOpenGLライブラリがCリンケージを使用していることを忘れていました。 – Andreas
@Andreasああ、それはあなたが何が起こっているのか理解して良いです。私はすでに、おそらくあなたにとって明白ないくつかのノートを追加しました。 –