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.
...全文
7 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
关注
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-15 02:04
社区公告

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