32ビットモードでコンパイルできるDLLを作成しましたが、64ビットモードでコンパイルすると(32ビットボックスクロスコンパイルと64ビットネイティブ)上記のエラー。VC++ LNK2001:64ビットコンパイル時にのみ未解決の外部シンボル
"struct return_info_ * __cdecl patch_file(char *,char *,char *)"
私はCに新しいです++が、私は私が正しく構造体と署名の両方を定義していると思う:それは文句を言っている 記号は次のとおりです。 「return_info_は」のように定義される構造体は、以下:コンパイルさ
return_info* patch_file(char* oldfile, char* newfile, char* patchfile);
これはネイティブのC/C++コードのすべてで、私は、関数の署名が同じヘッダで
typedef struct return_info_
{
char *message;
int code;
} return_info;
静的にリンクされたライブラリとして。私は、これにリンクし、clr互換のバイナリですメインライブラリを持っています。 64ビットコンパイラがこれらのエラーを投げる理由は何ですか?
私は、64ビットビルドが別のディレクトリに移動したことに気がつきませんでした。さまざまなビルドオプションとリンカオプションを試してみると、私はそれを変更しなければなりませんでした。すべてをクリアし、すべてが正しい場所を指していることを確認して、正しくコンパイルします。ありがとう! –