一个简单问题,请指点!

sbinbin2001 2004-01-15 01:45:56
我先打开vc,新建一个win32 动态链接库工程,我选择empty project.
然后为这个工程添加mydll.cpp文件
内容为extern "C"_declspec(dllexport) int xiangjia(int x,int y)
{
int c;
c = x + y;
return c;
}
然后编译成mydll.dll和mydll.lib文件

然后又建了一个win32 application,也选择empty project
然后为这个工程添加testdll.cpp文件
其内容为extern "C"_declspec(dllimport) int xiangjia(int x,int y);

void main()
{
int d;
d=xiangjia(3,7);
}

我把刚才的mydll.dll和mydll.lib文件拷到testdll目录下,并且添加mydll.lib到testdll工程的工程->设置->link->对象/库模板中.

最后我编译连接时就出现Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/dlltest.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

这种错误,请问这是怎么回事啊?
...全文
16 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbinbin2001 2004-01-15
  • 打赏
  • 举报
回复
我是在另外一个主程序里调用它
会思考的草 2004-01-15
  • 打赏
  • 举报
回复
main函数不能改名字,linker必须要找到main函数。
会思考的草 2004-01-15
  • 打赏
  • 举报
回复
Project -> Setting -> Link。下面的Project Option中找到/subsystem:windows,修改为
/subsystem:console
sbinbin2001 2004-01-15
  • 打赏
  • 举报
回复
谢谢大侠,还有一个问题请教你!
就是我运行一个程序(假如工程名字叫test)的时候,在工程->设置->debug->程序变量里设置参数,然后主程序int main(int c,char **v)运行时,设置的参数就可以传给c和v了,
其中c是参数的个数,v是具体的参数,如v[1]="outfilename"等.
我调试的时候发现v[0]="test.exe",

现在我想把main函数改个名字yy,然后用别的程序(若名字为rr)来调用yy,这样就要先给yy里面的变量赋值,然后再调用它.对v变量,v[1],v[2]...那些直接赋相应的值就行了,但是v[0]应该怎么赋什么值啊,若v[0]="rr.exe",就老出错.不赋值也出错
vcforever 2004-01-15
  • 打赏
  • 举报
回复
你创建DLL的测试程序时,你创建的是win32 application !
而你的文件中没有WinMain函数所以会抱错

如果使用main()函数你可以创建win32 console程序来测试你的DLL

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧