我用vs2013实现了一个C ++函数作为DLL。但我有链接器错误(错误LNK2019:函数___tmainCRTStartup中引用的未解析的外部符号_main)构建到dll。我有正确的设置,不知道有什么问题。代码很简单,但我不知道为什么它不能成功构建。
Demoone.h
#ifndef _Demo_H_
#define _Demo_H_
#ifdef LIBDLL
#define LIBDLL extern "C" _declspec(dllimport)
#else
#define LIBDLL extern "C" _declspec(dllexport)
#endif
LIBDLL int Add(int plus1, int plus2);
#endif
Demoone.cpp
#include "Demoone.h"
int Add(int a, int b)
{
return (a + b);
}
更新
我将头文件修改为下面的
#ifndef _Demo_H_
#define _Demo_H_
extern "C" int Add (int a , int b);
#endif
并添加def文件
LIBRARY "Dllmaketwo"
EXPORTS
Add @ 1
同样的链接器错误(错误LNK2019:函数___tmainCRTStartup中引用的未解析的外部符号_main)也出现了。
答案 0 :(得分:0)
如果要在使用DLL的项目中使用加载时链接,则需要链接DLL项目构建生成的.lib。
你可以这样做:
#pragma comment(lib, "dllproject.lib")
或者将.lib添加到Linker-> Input下项目设置中的其他依赖项行。您可能还需要在VC ++目录页面或Linker-> General页面中弄乱库搜索路径。
答案 1 :(得分:0)