作者whatbb123 (灣灣)
看板C_Sharp
標題[問題] 關於呼叫C++ dll function的問題
時間Mon Sep 29 23:12:08 2014
各位大大好
我利用c#寫網頁並呼叫c++ dll檔裡的function
在dll裡function裡的變數為PBYTE與ULONG
如下(以下是一行,為了方便閱讀我把它切了一下):
extern "C" __declspec(dllexport)void
GetAuthString(PBYTE pInBuf, ULONG ulInSize);
然後我利用c#寫成的網頁接了一字串
字串名稱暫且稱AuthStr = "477-61-F3-43A-46B-32E-589-4C4-4BD"
並試著傳入GetAuthString中
[DllImport("AuthProc.dll", EntryPoint = "GetAuthString",
CallingConvention = CallingConvention.Cdecl)]
static extern int GetAuthString(
byte[] pInBuf,
UInt32 ulInSize
);
先載入dll檔後,再將參數個別填入
其中pInBuf必須帶入AuthStr
ulInSize 為字串長度
我試著將string轉型後代入function中
但結果仍失敗。。。
是因為c++對應的c#型別是錯誤的嗎?
麻煩各位先進了
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.51.98
※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1412003530.A.494.html
推 johnpage: c++也是網頁程式嗎? 09/30 02:26
→ johnpage: 會不會該認證程式沒問題,出問題的是內部其他函式。 09/30 02:28
→ GoalBased: 失敗結果是甚麼阿 09/30 08:28
→ whatbb123: C++只是單純拿來寫dll 09/30 09:44
→ whatbb123: 結果是說輸入的型態錯誤 09/30 09:44
→ whatbb123: 我有用c++呼叫dll是可行的,到c#就失敗了… 09/30 09:46