[問題] 請問傳參數給dll的問題

看板C_Sharp作者 (gugu)時間16年前 (2007/09/10 20:01), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
我想在C#裡叫用dll的時候 一起傳兩個參數(type:sring)過去 =====C#====== [DllImport("0910.dll"] public static extern void openimage(string input, string output); private void button3_Click(object sender, EventArgs e) { string input = "lena.raw"; string output = "output.raw"; openimage(input, output); } =====dll===== char input[20], output[20]; BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { openimage(input, output); return TRUE; } extern "C" _declspec(dllexport) void _stdcall openimage( char input[], char output[]) { int i, j, k; fileinput=fopen(input, "rb"); fileoutput=fopen(output, "wb"); //....省略........ //....處理影像的步驟 fcloseall(); } 執行的時候會發生以下的錯誤: 正在OS載入器鎖定內城市Managed執行.請勿嘗試在DllMain或影像初 始設定函式內部執行Managed程式碼,因為這樣做可能導致應用程式停 止回應. 請問這是什麼原因!?又該如何解決呢!? 如果不傳參數做的話 可以有正確的結果 但是傳參數的話就... 因為專題的關係才開始接觸dll 去網路上看了很多資料還是沒有結果 問了很笨的問題還請大家多多包含捏~>///< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.189.21 ※ 編輯: gugu917 來自: 140.130.189.21 (09/10 20:07)

09/11 09:23, , 1F
到這看 http://0rz.tw/ae33r 把 string 換成byte試試
09/11 09:23, 1F

09/11 09:23, , 2F
可以用 Encoding.ascii.getbyte
09/11 09:23, 2F
文章代碼(AID): #16vJ8gBv (C_Sharp)