我有一个旧的c dll,我想转换为COM服务器。
它只暴露一个功能。
这就是我所做的: 我在VS 2010中创建了一个ATL项目,添加了一个带有包装函数的简单ATL对象。 我添加了c源代码和标题 在包装函数中,我调用了c函数,我添加了完整函数原型,如http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.5中所述。
出现以下错误:
函数
中引用的未解析的外部符号我尝试了一切。
有什么想法吗?
答案 0 :(得分:1)
你需要使用extern" C"当包括c源:
extern "C" {
#include "header.h"
}
答案 1 :(得分:1)
你可以尝试将c dll编译为常规的win32 dll,然后通过包装器从你的COM dll中调用它。您需要2个dll,但如果原始DLL编译正常,您应该能够从COM中使用它。