您的位置:首页 > 编程语言 > C语言/C++

C++调用dll文件(由lib文件生成)

2009-08-22 17:30 330 查看
现有两个文件chatting.h和chatting.lib,将其做成dll文件后,怎样被C++调用?

解决办法如下:

1. 创建dllChatting工程

与"java调用由LIB生成的DLL"不同在于dllChatting.cpp和dllChatting.def的内容不同。

/****************************************************/
/*             dllChatting.cpp                         */
/****************************************************/
// dllChatting.cpp : 定义DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include <stdio.h>
#include "chatting.h"
int dllPrint(int i)
{
int j;
j = print(i);
printf("print in DLL: %d/n", j);
return j;
}


/****************************************************/
/*             dllChatting.def                         */
/****************************************************/
LIBRARY	"dllChatting"
EXPORTS
dllPrint


2. 编写测试应用程序(VS2008)。

1) 创建工程test。选择"Win32控制台应用程序",应用程序类型选择"控制台应用程序"。

2) 将dllChatting.lib拷贝到与文件"test.vcproj"的同级目录下,并在"项目->test属性->配置属性->连接器->输入"的"附加依赖项"中添加"dllChatting.lib";将dllChatting.dll拷贝到生成应用程序test.exe的同级目录下。

3) 在文件test.cpp中编写测试代码

// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
_declspec(dllimport) int dllPrint(int i);
int _tmain(int argc, _TCHAR* argv[])
{
int j;
j =	dllPrint(1);
printf("print in C++: %d/n", j);
return 0;
}


测试结果如下:

print in LIB: 1

print in DLL: 1

print in C++: 1

Java中调用dll文件和C++中调用dll文件的区别

1) java中调用dll中某个函数,则必须先在java中定义好该接口函数,然后用javah生成.h文件,再将该.h文件包含到c++中实现,最后生成对应的DLL文件;C++中只用直接定义并实现即可。

2) java调用DLL不需要对应的LIB文件;但C++中如果应用程序要调用DLL文件,则必须在编译的时候,将对应的LIB文件添加到依赖库中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: