C#でWin32dllメソッドを使用するためにDLLImportを使用しようとしています。
Win32 dll C ++//.hファイル
#ifdef IMPORTDLL_EXPORTS
#define IMPORTDLL_API __declspec(dllexport)
#else
#define IMPORTDLL_API __declspec(dllimport)
#endif
// This class is exported from the ImportDLL.dll
class IMPORTDLL_API CImportDLL {
public:
CImportDLL(void);
// TODO: add your methods here.
int Add(int a , int b);
};
extern IMPORTDLL_API int nImportDLL;
IMPORTDLL_API int fnImportDLL(void);
IMPORTDLL_API int fnMultiply(int a,int b);
//.cppファイル
// ImportDLL.cpp:DLLアプリケーションのエクスポートされた関数を定義します。//
#include "stdafx.h"
#include "ImportDLL.h"
// This is an example of an exported variable
IMPORTDLL_API int nImportDLL=0;
// This is an example of an exported function.
IMPORTDLL_API int fnImportDLL(void)
{
return 42;
}
IMPORTDLL_API int fnMultiply(int a , int b)
{
return (a*b);
}
これをビルドすると、ImportDLL.dllを取得します
次に、Windowsアプリケーションを作成し、このdllをデバッグフォルダーに追加して、DLLImportを使用してこのメソッドを使用してみます。
[DllImport("ImportDLL.dll")]
public static extern int fnMultiply(int a, int b);
そして、これをC#で呼び出そうとします
int a = fnMultiply(5, 6);
//この行はエラーになりますエントリポイントが見つかりません
誰かが私が欠けているものを知ることができますか?ありがとう。