主題: VB與C++接軌
查看單個文章
舊 2005-06-21, 02:53 PM   #1
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:98 | 在線時長:10164小時 | 升級還需:33小時級別:98 | 在線時長:10164小時 | 升級還需:33小時級別:98 | 在線時長:10164小時 | 升級還需:33小時級別:98 | 在線時長:10164小時 | 升級還需:33小時級別:98 | 在線時長:10164小時 | 升級還需:33小時級別:98 | 在線時長:10164小時 | 升級還需:33小時級別:98 | 在線時長:10164小時 | 升級還需:33小時級別:98 | 在線時長:10164小時 | 升級還需:33小時
註冊日期: 2002-12-07
文章: 13489
精華: 0
現金: 26851 金幣
資產: 3024781 金幣
預設 VB與C++接軌

C++要寫 windows介面
整體來說 編寫時間上不如 VB 來的快的說

因此看說有人是...
用 C++(VC、BC) 寫運算 (.dll 為主)
VB 設計介面

但找到的都不是很完整
不知有無版友手上有完整範例的說

自己做過的努力如下
運行後是有顯示出 VC++的 MessageBox 內容
但接著就出現

執行階段錯誤'49':
DLL 呼叫格式錯誤

應該是指 參數傳遞 方面的錯誤
不知如何是好 ??

==VB==

Option Explicit
Private Declare Function ShowMsg Lib "test2.dll" Alias "ShowMsgW" (ByVal send As String, ByVal hWnd As Long) As Integer

Private Sub Command1_Click()
Dim send As String

send = "Hello,World!"
Call ShowMsg(send, Me.hWnd)

End Sub

==VC++==

..... //.....前面是專案精靈產生的程式碼,與試驗無關

extern "C" __declspec(dllexport) int ShowMsgW(LPCSTR pText, HWND hWnd)
{
return MessageBox(hWnd ,pText ,"Information" ,MB_OK);
}

====================

後來有想起
C++ 的 int 相當於 VB 的 long
因此
做過 ...(dllexport) int ShowMsgW ...
改成 ...(dllexport) short int ShowMsgW ...


ShowMsg Lib "test2.dll" ...(...) As Integer
改成
ShowMsg Lib "test2.dll" ...(...) As Long

結果亦然
(當然 改成不回傳值 void 也一樣,所以看來問題還是 參數傳遞 方面的錯誤)
mini 目前離線  
送花文章: 2054, 收花文章: 8068 篇, 收花: 26920 次
回覆時引用此帖