首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

[新手]怎么再次封装dll

2012-01-30 
[新手]如何再次封装dll需求是这样的,我现在拿到一个dll,但是他并不符合程序的需求,我需要把他封装成另外一

[新手]如何再次封装dll
需求是这样的,我现在拿到一个dll,但是他并不符合程序的需求,我需要把他封装成另外一个dll,但是总是编译不过。(我不是做vc的,但是没有人搞这个东西,被逼来搞vc了,所以问题可能很新手,望多多指教,谢谢)

环境:vc6

目前我有dll,lib和def以及它导出的h文件。

我的步骤,File-> New-> Projects-> Win32   Dynamic-Link   Library

写了如下的文件:
Printer.h(这个是导入那个动态链接库的头文件)
#define   DLLIMPORT   __declspec(dllimport)

DLLIMPORT   bool   __stdcall   ZQOpenPrinter(LPSTR);

T.H(这个是我再次封装,想导出的头文件)
#define   DLLEXPORT   __declspec(dllexport)

DLLEXPORT   bool   OpenPrinter(LPSTR);

在我的主函数里调用如下:
#include   "stdafx.h "
#include   "Printer.h "
#include   "T.h "

DLLEXPORT   bool   OpenPrinter(LPSTR   printName){
return   ZQOpenPrinter(printName);
}


在Project-> Setting-> Link-> Object/Library   modules   add   the   lib   file.
编译报错:
Linking...
      Creating   library   Debug/T.lib   and   object   Debug/T.exp
T.obj   :   error   LNK2001:   unresolved   external   symbol   "__declspec(dllimport)   bool   __stdcall   ZQOpenPrinter(char   *) "   (__imp_?ZQOpenPrinter@@YG_NPAD@Z)
Debug/T.dll   :   fatal   error   LNK1120:   1   unresolved   externals
Error   executing   link.exe.

T.dll   -   2   error(s),   0   warning(s)



[解决办法]
去掉这个,不要再定义一次导入

Printer.h(这个是导入那个动态链接库的头文件)
#define DLLIMPORT __declspec(dllimport)
DLLIMPORT bool __stdcall ZQOpenPrinter(LPSTR);
[解决办法]
要把lib文件添加到工程中间
不是简单拷进来
[解决办法]
可能你的lib库路径没放好,呵呵
[解决办法]
你需要的函数已经在printer.h里面声明过了,你又声明一次。。。

热点排行