Sign-up....

急:求教个关于 unresolved external symbol问题

创建一个WIN32 DLL(IC_DAT) ,其中要调用一个函数,而该函数在另一个CPP(DES.CPP)中头文件中定义和实现的。DES.CPP和DES.H文件我是在IC_DAT的WORKSPACE里工程->添加工程->FILES中直接创建的.

代码如下:

DES.H中

#ifndef _DES_H_

#define _DES_H_

#ifdef __cplusplus

extern "C" {

#endif

void STDMETHODCALLTYPE Son01(BYTE *out,BYTE *key,BYTE *in);

#ifdef __cplusplus

}

#endif

#endif// _DES_H_

DES.CPP中

#include "Des.h"

void STDMETHODCALLTYPE Son01(BYTE *out,BYTE *key,BYTE *in)

{

BYTE buffer[8],lkey[8],rkey[8];

memcpy (lkey,key,8);

memcpy (rkey,&key[8],8);

memcpy(buffer,in,8);

DES(buffer,lkey);

_DES(buffer,rkey);

DES(buffer,lkey);

memcpy(out,buffer,8);

memset(buffer,0xff,8);

dat_str_xor(buffer,in,8);

DES(buffer,lkey);

_DES(buffer,rkey);

DES(buffer,lkey);

memcpy(&out[8],buffer,8);

}

IC_DAT.CPP中

#include "Des.h"

int STDMETHODCALLTYPE ICC_Load(int ICMode,char *KEY, char *KeyIndex,unsigned char *Money,char *TerminalNO)

{

BYTE HEL_DLK_bank1[33]="98989898989898989898989898989898";

BYTE DDKL[17]="880400000019FFFF";

Son01(HEL_DLK_bank1,HEL_DLK_bank1,DDKL);

return Result;

}

现在编译时,老是报:IC_DAT.obj : error LNK2001: unresolved external symbol _Son01@ 12和

Debug/IC_DAT.dll : fatal error LNK1120: 1 unresolved externals

请高手指点一下了!

[1210 byte] By [msdn] at [2007-8-14 20:04:49]
# 1 Re: 急:求教个关于 unresolved external symbol问题

可能是重复定义变量或函数造成的,不好说

s_topman at 2005-6-21 13:34:37 >
# 2 Re: 急:求教个关于 unresolved external symbol问题

检查了一遍,没有重复定义呀。

还有,我在DES.CPP的其他函数里也调用到Son01函数,把IC_DAT.CPP中的调用地方隐含掉,编译是不会出问题的!

csdndatura at 2005-6-21 14:20:22 >
# 3 Re: 急:求教个关于 unresolved external symbol问题

去掉

#ifdef __cplusplus

extern "C" {

#endif

#ifdef __cplusplus

}

#endif

doon at 2005-6-21 14:56:12 >
# 4 Re: 急:求教个关于 unresolved external symbol问题

谢谢东方,可以了,请问,为什么?

csdndatura at 2005-6-21 16:22:15 >
# 5 Re: 急:求教个关于 unresolved external symbol问题

单纯的这么一个用不上

xjp6688 at 2005-6-22 5:56:49 >

C/C++

All Classified