2013-02-07 67 views
2

我在VC++ 2010中編寫了一個非常簡單的xll文件,我使用的是Excel 2007.該庫只包含一個函數:「addin.XLL格式不同」問題,無法打開我自己創建的xll

extern "C" LPXLOPER12 WINAPI tsMkErr() { 
    static XLOPER12 x; 
    x.xltype = xltypeErr; 
    x.val.err = xlerrNull; 
    return &x; 
} 

和必要的xlAutoOpen函數。我編譯和dll文件,將名稱更改爲xll,然後雙擊它在Excel中打開。一切都如我所料。

但是,如果我試圖打開另一臺PC上這個文件,Excel的只是不斷告訴我說:

文件你試圖打開,「.xll」,是在不同的格式規定由文件擴展名。在打開文件之前,驗證該文件是否已損壞並且來自受信任的來源。你想現在打開文件嗎?

當我點擊yes時,垃圾會彈出。

我也嘗試通過加載項管理器加載它。在這種情況下,我可以打開文件,但找不到我的函數tsMkErr()。

我會感謝所有建議...

順便說一句,我真的不知道如何選擇一個回覆作爲答案。如果你知道如何做,請告訴我:)

...我打算在本週發佈我的工具...現在我只是意識到它只適用於我的電腦...請幫助。 .. T_T

回答

0

可能的原因可能是缺少依賴關係(crt dlls等)。您可以使用Dependency Walker工具進行檢查。

1

的主要原因是:

  1. 您嘗試打開一個XLL有錯誤的體系結構(例如:32位XLL與Excel 64位)。

  2. 一些的外部DLL丟失(見Dependency Walker工具) 請注意,如果您在調試模式下構建並嘗試通過Visual Studio打開它,則在這種情況下,您的環境路徑變量可能不可用,並且xll缺少一些dll。

0

好像你在調試模式構建解決方案。如果您在調試模式下構建解決方案,Visual Studio將xll與很少安裝在另一臺計算機上的調試庫鏈接。因此,請確保將生成配置設置爲版本,並且它應該可以在其他計算機上工作(如果它們安裝了正常的ms C++可再發行組件庫)。

相關問題