dll编译出错,到底怎么回事?大家帮帮忙!!!!!

csdnqq 2002-05-15 02:04:28
dll编译出错:
(原来的程序是正确的,我只是将SendAndReceive()中的参数之一由short改为int)

Linking...
Creating library Debug/Aicommon.lib and object Debug/Aicommon.exp
Aicommon.exp : error LNK2001: unresolved external symbol "public: int __thiscall CBASEBASE::SendAndReceive(int,int,char *,int,int,char * &,short &)" (?SendAndReceive@CBASEBASE@@QAEHHHPADHHAAPADAAF@Z)
../bin/Aicommon.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
...全文
65 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazy_lazy_pig 2002-05-16
  • 打赏
  • 举报
回复
你是用什么方法输出函数的?是用_declspec(dllexport)还是 DEF 文件?
若是_declspec(dllexport)就应该让它后面的函数声明与其他地方的定义及声明保持一致。若是DEF文件就可能与我遇到的问题是一致的,当我添加了一个新函数后,编译通过,后来发现它应该是一个输出函数,遂于DEF文件中声明为EXPORT,再编译就通不过了,最后把新添的函数和DEF文件里的输出声明一起删掉重新编译,又正常了,再同时加进新添函数和DEF文件的输出声明,编译通过。
freelybird 2002-05-16
  • 打赏
  • 举报
回复
解决办法:

第1步:保持函数定义与实现一致, 这一点可能你现在已经没问题
第2步:所有调用这个函数的地方,参数保持致. short强制转换为int
第3步:调用的地方#include "xxxxx.h"相关的头文件
csdnqq 2002-05-15
  • 打赏
  • 举报
回复
那这里该怎么改呢?直接在.def文件中修改?~~~~~~~不会吧
LegerWu 2002-05-15
  • 打赏
  • 举报
回复
在.def文件中还有输出函数的接口.
LegerWu 2002-05-15
  • 打赏
  • 举报
回复
在.def文件中还有输出函数的接口.
john1980 2002-05-15
  • 打赏
  • 举报
回复
加了那个_declspec(dllexport)标识符的函数或者类就叫输出函数或者变量
csdnqq 2002-05-15
  • 打赏
  • 举报
回复
大家能否说的更详细点吗?

函数定义的地方我已经改过了,但是,输出函数定义是什么意思呢?

我的意思是,我并没有改动不该改动的地方啊(愚窃以为)
otuotu 2002-05-15
  • 打赏
  • 举报
回复
在函数头加上WINAPI,
引用的时候也要加
LegerWu 2002-05-15
  • 打赏
  • 举报
回复
这会导致函数原型不对,如果你要修改,必须把所有的地方(如输出函数定义),全部修改.
junguo 2002-05-15
  • 打赏
  • 举报
回复
关注

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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