ここで説明されているように、DLLのロードが遅れています。DLLには、定数定義と関数宣言の両方を含む.hファイルが付属しています。これは、私がやろうとすると
MyFunction = pICFUNC(lpfnGetProcessID); // See link above
MyFunctionは.hファイルですでにそのように宣言されているため、コンパイラは「エラー:割り当てで'int(*)(int、int、int)'を'int(int、int、int)'に変換できません」と文句を言います。
int __stdcall MyFunction (int, int, int);
するべきか:
A).hファイルの関数プロトタイプをコメントアウトし、を使用して独自のプロトタイプを作成します
typedef int (__stdcall * pICFUNC)(int, int, int);
pICFUNC MyFunction;
MyFunction = pICFUNC(lpfnGetProcessID);
B)A)と同じことを行いますが、.hファイルのプロトタイプをコメントアウトする代わりに、関数に別の名前(MyFunction_local)を付けます。
C)私が考えていなかった何か。
A)をやりたいのですが、そのようなサードパーティの.hファイルをいじるのは間違っていると感じています。