新手请教:在调用DLL中的编译不通过的问题

csdndatura 2005-03-25 10:35:05
1.用MFC APPWIZARD(DLL)创建了一个工程ICC2
2.做了个接口函数(暂时为空)
3.调用另一个DLL(ICC3)
到这一步,编译通过,也可以调用
然后,在接口函数中调用ICC3中的一个函数
编译时,出错提示:error LNK2001: unresolved external symbol _ICC_Reader_Application@20
和fatal error LNK1120: 1 unresolved externals.其中,ICC_Reader_Application为ICC2中调用的ICC3中的一个函数.
ICC3中的头文件为:
#ifndef _ICC3_H_
#define _ICC3_H_

#ifdef __cplusplus
extern "C" {
#endif

int STDMETHODCALLTYPE ICC_Reader_Application (int ReaderHandle, int ICC_Connector_No, int Length_of_Command_APDU, char *Command_APDU, char *Response_APDU); //应用命令函数


#ifdef __cplusplus
}
#endif


#endif // _ICC3_H_

请问,到底哪里不对?
...全文
167 点赞 收藏 10
写回复
10 条回复
CMyMfc 2005年03月25日
lib
回复 点赞
csdndatura 2005年03月25日
在ICC2.APP中用#include "ICC3.h"不行吗(我把ICC3.h文件加到工程中来了)?
我看别人是那么调用,可以的?
回复 点赞
CMyMfc 2005年03月25日
调用dll, 要连接其lib文件, 如果这一步做到了, 仍有相同问题
则看ICC3工程导出函数的时候,有没有用extern "C"声明
回复 点赞
csdndatura 2005年03月25日
CMyMfc(星际人生:=E.F=FlyForEver) ,不好意思,看不明白,你的意思,我的ICC3 DLL是别人写好的,我只是调用一下!
nipcdll() ,为什么不匹配?该怎么改?
回复 点赞
nipcdll 2005年03月25日
#ifdef __cplusplus
extern "C" {----------------------------------------------
#endif

int STDMETHODCALLTYPE ICC_Reader_Application (int ReaderHandle, int ICC_Connector_No, int Length_of_Command_APDU, char *Command_APDU, char *Response_APDU); //应用命令函数


#ifdef __cplusplus
}----------------------------------------------------------
#endif

感觉上面的两个{}以及ifdef endif不匹配
回复 点赞
CMyMfc 2005年03月25日
#pragma comment(lib, "ICC3.lib")

ICC3.lib可以写ICC3工程生成的lib文件的路径
回复 点赞
csdndatura 2005年03月25日
有高手吗?急!自己顶!
回复 点赞
CMyMfc 2005年03月25日
该说的都说了, 看你做做了
回复 点赞
csdndatura 2005年03月25日
:(,看来,没人理了!
回复 点赞
csdndatura 2005年03月25日
不行,是不是我调用的ICC3不是DLL,我是看别人的C程序写的,他的DLL,是在CPP中加入ICC3.h,调用ICC_Reader_Application 函数的。
回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告