- 締切済み
エントリポイントがDLLから見つからない
WIN2000のVC++6.0を使ってWin32DLLを作成して、VBから呼びたいのですが、「エントリ関数がDLLファイル内に見つからない」言われるので、ためしにVCから呼んでみたのですが、表題のようなエラーになります。内容は入門書のサンプル通りに作ってみたのですが・・・ちゃんとEXPORTされていないのでしょうか? [DLL側] <ヘッダファイル> #ifdef XXXX_EXPORTS #define XXXX_API __declspec(dllexport) #else #define XXXX_API __declspec(dllimport) #endif XXXX_API long AddLong(long a, long b); <ソースファイル> XXXX_API long AddLong(long a, long b) { return a + b; } [呼び出し側VC] #include "stdafx.h" #include "XXXX.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { TCHAR s[20]; wsprintf(s,"%d",AddLong(123,456)); MessageBox(NULL,s,"DLLの参照",MB_OK); return 0; } プロジェクトの設定のリンク時のライブラリには XXXX.lib を追加しました。 初めてのDLL作成でよく分かりません。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- FrazerDebuMan
- ベストアンサー率50% (1/2)
呼び出し規約、関数装飾名、DllMainは本当にエクスポートされているのかなど。 Dllを作成した後は意図したとおりにエクスポートされているかを確認するために迷わずDependency Walkerを使用してください。
- e101tre
- ベストアンサー率38% (7/18)
以下のような XXXX.def ファイルを作って、それを VC++ のプロジェクトに追加してみて下さい。 XXXX.def ファイル内容 ----- ここから LIBRARY XXXX EXPORTS AddLong ----- ここまで XXXX.def 追加方法 メニューバーの「プロジェクト」 → 「プロジェクトに追加」 → 「ファイル」 で「プロジェクトへファイルを追加」画面が表示される ので、そこで XXXX.def を追加する。
- gimmick
- ベストアンサー率49% (134/270)
DLLのソースにDllMain()関数はありますか?