#ifndef HEADER_INFOAPI
#define HEADER_INFOAPI
#define EXTERN_C extern "C"
#define INFOAPI __declspec(dllexport)
#include <windows.h>
#include <TCHAR.h>
struct Info
{
virtual void StartPs() = 0;
virtual double GetHt() = 0;
virtual bool IsShowInfo() = 0;
};
typedef Info* INFOHANDLE;
EXTERN_C INFOAPI INFOHANDLE WINAPI GetInfo(wchar_t* File1,
wchar_t* File2,
double Height,
int Num);
#endif
dev C++ で DLL を作成しました。DLL の名前は「Info.dll」で、「GetInfo」という 1 つの関数が含まれています。ヘッダー ファイルは次のようになります。
C# でどのように呼び出すのですか?
こんにちは、c45207
あなたが言ったことを試してみたところ、bodyRes.GetHt() の値が間違っていました
私の予想では、bodyRes.GetHt() は = Double test = 170.0 である必要があります。
しかし、私は9.2079039212996476E-275を得ました
私が何か間違ったことをしたかどうかを確認するのを手伝ってもらえますか?
============================ コード=================== ===========
Double test = 170.0;
IntPtr x = GetInfo("C:\\t.jpg", "C:\\e.jpg", test, 0);
IBodyInfo bodyRes = (Info)Marshal.PtrToStructure(x, typeof(Info));
bodyRes.StartPs();
================================================== ==================
============================= 結果 ==================== =========
bodyRes.GetHt() 9.2079039212996476E-275 double
bodyRes.IsShowInfo() false bool
================================================== ==================