C++调用dll文件(由lib文件生成)
2009-08-22 17:30
330 查看
现有两个文件chatting.h和chatting.lib,将其做成dll文件后,怎样被C++调用?
解决办法如下:
1. 创建dllChatting工程
与"java调用由LIB生成的DLL"不同在于dllChatting.cpp和dllChatting.def的内容不同。
2. 编写测试应用程序(VS2008)。
1) 创建工程test。选择"Win32控制台应用程序",应用程序类型选择"控制台应用程序"。
2) 将dllChatting.lib拷贝到与文件"test.vcproj"的同级目录下,并在"项目->test属性->配置属性->连接器->输入"的"附加依赖项"中添加"dllChatting.lib";将dllChatting.dll拷贝到生成应用程序test.exe的同级目录下。
3) 在文件test.cpp中编写测试代码
测试结果如下:
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文件添加到依赖库中。
解决办法如下:
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文件添加到依赖库中。
相关文章推荐
- VS2008环境下,C++生成Dll文件 C++调用Dll文件(非MFC)
- java使用JNI调用C++代码(vs2010生成dll文件)
- C#调用C++编译生成的dll文件
- c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件
- 如何生成DLL文件并导出函数及如何在C++或C#中调用DLL中导出的函数
- java使用JNI调用C++代码(vs2010生成dll文件)
- VS2008环境下,C++生成Dll文件 C++调用Dll文件(非MFC)
- matlab生成c和c++调用的dll文件
- 关于使用C#调用C++生成的动态链接库(DLL文件)
- C++生成并调用dll文件
- C++中DLL文件的生成与调用
- java中调用C/C++编写的生成的动态连接库dll文件接口的简单例子
- VS2008环境下,C++生成Dll文件 C++调用Dll文件(非MFC)
- C++怎么调用C#生成的dll文件
- C++调用C#生成的DLL文件的各种问题
- C++生成并调用dll文件
- 用JNI技术Java调用dll文件(由lib文件生成)
- VS2008环境下,C++生成Dll文件 C++调用Dll文件(非MFC)
- 编写S-Function,创建Simulink模型并生成C++代码,编译生成可调用的动态库dll(From Simulink model to DLL A tutorial)
- c#调用c++写成的dll文件