VC++ Win32コンソールアプリケーションを作成してDLLをチェックしましたが、「変数をエクスポートする」も忘れました。後で私はそこにあるクラス、変数などが呼び出すアプリケーション([DllImport ...]を使っていた)にエクスポートされなかったことに気づいた。Visual Studio(2012)DLLを変更してクラスと変数をエクスポートする
確かに、私は新しいDLLを作成して "エクスポート"オプションを作成することができますが、後でそれを行う方法もありますか?
VC++ Win32コンソールアプリケーションを作成してDLLをチェックしましたが、「変数をエクスポートする」も忘れました。後で私はそこにあるクラス、変数などが呼び出すアプリケーション([DllImport ...]を使っていた)にエクスポートされなかったことに気づいた。Visual Studio(2012)DLLを変更してクラスと変数をエクスポートする
確かに、私は新しいDLLを作成して "エクスポート"オプションを作成することができますが、後でそれを行う方法もありますか?
はい、後で変更することもできます。ちょうどあなたが物をエクスポートし、プロジェクトファイルを比較する新しいDLLプロジェクトを作成してください。また、プロジェクトセットアップのUIで作業を調整することもできますが、それは難しいかもしれません。
エクスポートされた名前はすべて__declspec(dllexport)
です。
「エクスポート」チェックボックスは、単にのような他のものの間で、定義されて余分な.h
ファイル生成:また
MYPROJECT_API void MyExportedFunction();
することができます:あなたのコード内で後で書くことができるようにするため
#ifdef MYPROJECT_EXPORTS
#define MYPROJECT_API __declspec(dllexport)
#else
#define MYPROJECT_API __declspec(dllimport)
#endif
をこの宣言をDLLおよびDLLを使用するクライアントコードで再利用します(MYPROJECT_EXPORTS
は「エクスポート」チェックボックスに関係なく自動的に定義されます)。
後でMYPROJECT_API
を生成することはできませんが、手作業で簡単に作成できます。また、エクスポートされた関数__declspec(dllexport)
を他の方法で宣言することもできます。