簡體   English   中英

Visual Studio中的64位編譯

[英]64 bit compilation in visual studio

我正在編譯一個使用ATL來容納com對象並針對X64的DLL。 一切似乎都很好,但該DLL無法在64位計算機上運行。 我在目標計算機上運行它,似乎依賴於無數系統庫的x86版本(kernel32等)。 有人知道我在想什么嗎?

我猜您正在運行Dependency Walker的x86版本,在分析64位DLL時它將顯示它依賴於幾個x86系統庫。 您需要下載並運行x64版本的Dependency Walker,以查看導致DLL問題的真正原因。

http://www.dependencywalker.com

需要更多詳細信息以提供幫助,您將遇到什么錯誤?

DLL的名稱並不表示它是否為64位,在Windows中,大多數系統dll的版本都在32位和64位上,並且它們的名稱相同,但位於不同的文件夾中。

您從中獲得的結果令人擔憂。 您確定您的DLL確實是64位嗎? 如果是這樣,並且鏈接到32位DLL,它將永遠無法工作。 回到您的開發環境並更改那些依賴項。 如果您的DLL恰好是32位,請尋找64位。

您沒有指定DLL無法運行的確切方式(regsvr32是否起作用?如果可以,創建實例返回的錯誤是什么?)。 如果確實可以注冊它,並嘗試從32位客戶端使用它,請確保正確指定激活位(請參閱CLSCTX_ACTIVATE_32_BIT_SERVER和CLSCTX_ACTIVATE_64_BIT_SERVER )。 如果是這樣的話,當然,依賴項是一個紅鯡魚。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM