2010-01-21 118 views
0

我正在研究一個使用C編寫的DLL的項目,該DLL有32位和64位兩種編譯DLL的原因。主要應用程序是用Visual Basic 6編寫的。引入C DLL功能的組件是Visual Basic 6中的一個類,它包含一個完整的DLL對象的公共聲明函數的模塊,而類是這些函數的包裝器在模塊中。所以在Visual Basic 6項目本身中沒有引用。到目前爲止,我已經完成了對32位版本的編碼並且很滿意。如果有任何問題需要更改模塊中的文件名以指向我不知道的64位DLL。由於64位DLL將從一個用Visual Basic 6編寫的32位應用程序中的32位DLL調用?請不要因爲仍然用這樣一種古老的語言工作而恨我。這是我正在進行更新的當前項目。將64位DLL鏈接到Visual Basic 6

回答

3

你不能從32位調用64位代碼。唯一的方法是在64位進程中運行64位代碼,並使用某種進程間通信與它們進行通信。

2

Raymond「The Old New Thing」有一個nice article,它解釋了爲什麼從32位到64位無法進行thunk。

+0

感謝您的信息。至少有趣的閱讀... – Jeff 2010-01-21 18:41:07