全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2360
推到 Plurk!
推到 Facebook!

請問C#怎麼調用VC寫的DLL??

缺席
sockman
一般會員


發表:24
回覆:29
積分:10
註冊:2003-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-08 15:01:40 IP:61.66.xxx.xxx 未訂閱
如題!請問C#怎麼調用VC寫的DLL?? 有詳細的sample可以介紹嗎?謝謝!
wodahs
初階會員


發表:0
回覆:33
積分:26
註冊:2004-02-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-08 16:50:08 IP:61.220.xxx.xxx 未訂閱
使用DllImport屬性來設定引用.例如下面表示呼叫user32.dll裏的MessageBox函式 [ DllImport( "User32.dll", EntryPoint="MessageBox", CharSet=CharSet.Auto )] public static extern int MsgBox( int hWnd, String text, String caption, uint type ); wodahs ====================================================================== 我是非出身科班的菜鳥,瞎子摸象,寫錯的地方,請大家包涵包涵,不要太認真 ^^ 歡迎大家批評指教,適時糾正我錯誤觀念,這樣我才會進步並學到正確的知識 ^^ ======================================================================
sockman
一般會員


發表:24
回覆:29
積分:10
註冊:2003-03-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-09 14:49:47 IP:61.66.xxx.xxx 未訂閱
這個部分我知道..查過MSDN了..也用過DLLImport的方式了! 但是沒有用..發現是因為要引用的DLL是unmanage的DLL 要使用Marshal的方式..但不了解何謂Marshal 不知道是否有這樣的sample??
wodahs
初階會員


發表:0
回覆:33
積分:26
註冊:2004-02-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-09 15:19:43 IP:61.220.xxx.xxx 未訂閱
引言: 這個部分我知道..查過MSDN了..也用過DLLImport的方式了! 但是沒有用..發現是因為要引用的DLL是unmanage的DLL 要使用Marshal的方式..但不了解何謂Marshal 不知道是否有這樣的sample??
DllImport即是呼叫unmanage的DLL的方法之ㄧ.所以可能是設定問題. 可否說明您在使用DllImport時,呼叫時的所出現的錯誤.這樣大家比較好幫你解決問題.另外請您確認被呼叫DLL的是否有該Export Fuction,而參數型別,名稱是否正確... 如果還是不行,您可以把DLL及Export格式 E-Mail給我幫您看看. wodahs ====================================================================== 我是非出身科班的菜鳥,瞎子摸象,寫錯的地方,請大家包涵包涵,不要太認真 ^^ 歡迎大家批評指教,適時糾正我錯誤觀念,這樣我才會進步並學到正確的知識 ^^ ======================================================================
wodahs
初階會員


發表:0
回覆:33
積分:26
註冊:2004-02-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-09 17:16:16 IP:61.231.xxx.xxx 未訂閱
引言: 這個部分我知道..查過MSDN了..也用過DLLImport的方式了! 但是沒有用..發現是因為要引用的DLL是unmanage的DLL 要使用Marshal的方式..但不了解何謂Marshal 不知道是否有這樣的sample??
補充一下,.Net 2.0 裏Marshal有提供另一種方法可以達到你要的,但如果你是用.NET 1.1/1.0就暫時不要想太多^^ ,當然在1.1/1.0可寫段DLL或.IL來封裝轉接以模擬新功能,不過並不建議. wodahs ====================================================================== 我是非出身科班的菜鳥,瞎子摸象,寫錯的地方,請大家包涵包涵,不要太認真 ^^ 歡迎大家批評指教,適時糾正我錯誤觀念,這樣我才會進步並學到正確的知識 ^^ ======================================================================
ATEIN
高階會員


發表:105
回覆:320
積分:125
註冊:2002-07-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-22 19:16:40 IP:203.204.xxx.xxx 未訂閱
引言: 如題!請問C#怎麼調用VC寫的DLL?? 有詳細的sample可以介紹嗎?謝謝!
public static extern int MsgBox( int hWnd, String text, String caption, uint type ); 請問上這一我該於事件中,如何使用它? ex: MSBOX asd = new MSBOX() ; asd.MsBox(這裡要填什麼呢?,"999","999",這裡要填什麼呢?); 謝謝您! DHM
------
ATEIN
sockman
一般會員


發表:24
回覆:29
積分:10
註冊:2003-03-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-07 10:55:37 IP:61.66.xxx.xxx 未訂閱
int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType ); 第一個Prameter是MsgBox要Create時Owner Window的Handle,如果沒有Owner Window就NULL就可以了,第四個uType是MsgBox的型態,例如MB_OK就出現OK的Button,MB_OKCANCEL就出現OK和Cancel的Button
系統時間:2024-05-19 10:57:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!