很奇怪呀,例如,我在a.cpp中
#include "..//b.h"
调用b.dll中的函数
b.h是项目中的一个dll的头文件,用一种很常用的方法实现,大家都知道吧
#ifndef MYDLLAPI
#define MYDLLAPI extern "C" __declspec(dllimport)
#endifMYDLLAPI int c(...)
...在b.cpp中预定义MYDLLAPI为 __declspec(dllexport),实现所有的输出函数
b.dll编译通过呀,a.exe为什么不行呢,哪个编译选项有问题吗?
提示是“无法解析的外部符号”,针对那几个函数的

解决方案 »

  1.   

    没有添加lib吧
    把编译好的dll目录下的b.lib考到a工程目录下在a工程里菜单项上project->setting->setting
    link签里的有个l对象/库模块 里边添上b.lib
     for debug和release里各做一遍
    再试试可以给分吗?
      

  2.   

    //file:yourproject.def
    LIBRARY      "yourproject" ;指出DLL的名字
    DESCRIPTION  'yourproject Windows Dynamic Link Library'
    ;描述DLL的用途(此句可选)
    EXPORTS     yourfunciton ;导出函数的名//--------------------------------
    你在你的dll中导出相应的函数了吗?
    你的错误是没法链接呀!
    你一定没有导出函数
    添加一个相应的.def文件,向上面那样将你的需要的函数到出来就行了
      

  3.   

    哈哈,谢谢,真不好意思,您的回答完全正确,刚才仔细检查了一遍,我不小心
    把dll头上本该是
    #define MYDLLAPI extern "C" __declspec(export)
    忘了打extern "C",导致函数名不对了,当然没法链接了
    分数送上,谢谢您
      

  4.   

    to psusong(爱因思念) :
    不好意思,我以为前后是一个人呢,给完分才发现,要不再给您开个帖子?谢谢你
      

  5.   

    to:
    maoxianwang(大大㊣BETAⅡ //楼主,请把分给猪)
    哈哈,别这么说,本想人均30的