【发布时间】:2012-03-03 23:41:55
【问题描述】:
我有一个旧的 c dll,我想将其转换为 COM 服务器。
它只公开一个函数。
这就是我所做的: 我在 VS 2010 中创建了一个 ATL 项目,添加了一个带有包装函数的简单 ATL 对象。 我添加了 c 源代码和标题 在我调用 c 函数的包装函数中,我添加了完整的函数原型,如http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.5 中所述。
出现如下错误:
函数中引用的未解析的外部符号
我什么都试过了。
有什么想法吗?
【问题讨论】:
-
什么是完整的错误信息/未解析的符号?
-
错误 1 错误 LNK2019:未解析的外部符号 _CreateGifFromEq 在函数“public: virtual long __stdcall CMimeTexWrapper::CreateGifFromEqWrapper(wchar_t *,wchar_t *)”中引用 (?CreateGifFromEqWrapper@CMimeTexWrapper@@UAGJPA_W0@Z) C :\Users\John\Documents\Visual Studio 2010\Projects\MimeTexCOM\MimeTexWrapper.obj MimeTexCOM
-
您忘记链接旧的 DLL 导入库。
-
它不是库,而是源代码。我想制作一个 COM dll 而不是 win32 dll。但是源代码是相同的,加上制作 COM dll 所需的任何内容。在我的例子中,因为我只需要一个函数,所以我创建了一个简单的 atl 对象并添加了一个包装函数。不过谢谢