我試圖遷移用Visual Basic編寫的腳本從32位Windows Server 2008到64位Windows Server 2012 R2。該腳本連接到SQL Server,執行一些查詢並執行對供應商/第三方API的調用。問題從32位Windows Server 2008遷移VB腳本(依賴於供應商API)到64位Windows Server 2012 R2
包含供應商API代碼的dll文件未包含在新服務器安裝中,因此我從舊服務器複製了該文件。爲了能夠將dll(通過Add Reference
選項)添加到項目中,我必須通過Tlbimp.exe
運行dll。
當我嘗試運行可執行文件爲我的新的Windows服務器上的腳本,我得到了臭名昭著的錯誤:
Unhandled Exception: System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {...} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
我想這是一個關於第三方投訴DLL沒有被註冊,所以我已經嘗試...
......在平臺設置爲86
按: Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154。在MS Visual Basic 2010 Express IDE中,我已將該平臺設置爲Active (x86)
,這是我擁有的唯一選項。
......放置DLL System32文件夾
......註冊DLL
使用regsvr32.exe
。但我GETT他錯誤:
The module "C:\Windows\SysWOW64\vendor.dll" was loaded but the entry-point DllRegisterServer was not found...
誠然,我不知道的基本知識,當涉及到Windows編程,我覺得我可能會丟失一些簡單的或根本在這裏。
如何讓我的VB應用程序在供應商API(dll)的新服務器上運行?
顯然你需要註冊COM服務器。我建議你按照文檔,如果你遇到困難,請與供應商聯繫。 – 2014-09-02 15:44:37
不幸的是,我沒有文檔也沒有從供應商的支持:( – nmc 2014-09-02 15:45:41
嗯,我想你需要繼續努力。 – 2014-09-02 15:46:35