Re: [問題] 使用DllImport c#呼叫c++的method的轉換
※ 引述《karcher (凡事量力而為)》之銘言:
: 'DELB'印象中是一個定數
: 你可以去比對C++的值與C#計算出的值是否一致??
: int value = 'D' * 256 * 256 * 256 + 'E' * 256 * 256 + 'L' * 256 + 'B';
: ※ 引述《hatasum (我很可愛)》之銘言:
: : 我想把c++的dll讓c#引用
: : 其中裡面有一個method
: : extern "C" __declspec(dllexport) BOOL One_Method_INT(ULONG szMethod, int
: : iArg, ULONG* pulReturnValue);
: : 然後呼叫此方法是這樣呼叫的 :
: : One_Method_INT('DELB', 1, &ulResult);
: : 我在C#裡面使用DllImport來直接使用
: : [DllImport("WMIPort.dll")]
: : static extern bool One_Method_INT(ulong szMethod, int iArg, UIntPtr
: : pulReturnValue);
: : 但是...卻卡住了
: : 我不知道在C#要怎麼設定'DELB'為ulong..........
: : 不知道大家有沒有類似的經驗??QQ
: : 卡好久.....
感謝大家的協助!!
重新確認後確定'DELB'=0x44454c42 昨天可能鬼遮眼......
但是我現在又卡住另一個問題.........QQ
我傳入
UIntPtr pulReturnValue = UIntPtr.Zero;
bool result = One_Method_INT(0x44454c42, 1, pulReturnValue);
它顯示"嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀。"
如果'DELB'=0x44454c42是正確、iArg=1看起來似乎也不是問題...
那就是pulReturnValue的問題??
c++ : ULONG* pulReturnValue
c# : UIntPtr pulReturnValue
不知道這樣是否為正確??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.211.38.194
推
07/27 10:58, , 1F
07/27 10:58, 1F
→
07/27 11:41, , 2F
07/27 11:41, 2F
推
07/27 13:58, , 3F
07/27 13:58, 3F
→
07/27 14:03, , 4F
07/27 14:03, 4F
推
07/27 14:07, , 5F
07/27 14:07, 5F
→
07/27 14:07, , 6F
07/27 14:07, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章