我有一個項目,我需要爲本地C++ SDK製作一個Visual C++包裝器,以便它最終可以在C#中使用。如何在Visual C++項目中引用.lib文件(本機C++)?
SDK包含的.h文件,我正確地包括(這些沒有編譯錯誤)和一些需要被引用的.lib文件。這似乎是棘手的部分。
正如我在this question中所解釋的,每當我嘗試調用屬於庫的一部分的函數時,都會收到錯誤。這些錯誤是這樣的:
error LNK2080: unresolved token (0A000027) "public: static class vhtIOConn *__clrcall vhtIOConn::getDefault(enum vhtICRConn::DeviceType)"
error LNK2019: unresolved external symbol "public: static class vhtIOConn * __clrcall vhtIOConn::getDefault(enum vhtIOConn::DeviceType)"
據我所知,C++/CLR預計__clrdecl
,而本地C++提供__clrcall
。
這是怎麼回事?我在很多地方都讀過,這是可能的,但我還沒有看到任何實際的工作示例。請注意,我正在使用Visual Studio 2010.
哇。我總是驚訝於如何過分複雜但破碎的Windows'ABI。 +1,因爲獲得這樣的工作一定會很痛苦。 – 2013-04-02 10:17:31
確實很痛苦。我試圖用這個網站作爲最後的手段,但現在我根本沒有絲毫的線索知道如何繼續。 –
不幸的是,我不能真正幫助你 - 幸運的是,我從來沒有做過Windows編程,但是這裏有人肯定會有答案。 – 2013-04-02 10:29:57