一个简单的调用动态库的实例
来源:互联网 发布:无线淘宝收藏链接 编辑:程序博客网 时间:2024/06/05 18:46
先创建一个动态库dll工程
工程中添加 dlltest.cpp dlltest.def dlltest.h
dlltest.h
//dlltest.hextern __declspec(dllexport) int FuncTest();
dlltest.cpp
//dlltest.cpp__declspec(dllexport) int FuncTest(int a ){if (a = 1){return 100;}}
dlltest.def
LIBRARY"testmydll"EXPORTSFuncTest
编译后生成dlltest.dll dlltest.lib
再新建一个Win32控制台工程用来调用dlltest.dll
将dlltest.dll拷贝到Win32的Debug目录下面
Win32项目中dll.cpp文件如下
#include <iostream> #include "string" #include <stdio.h> #include <windows.h>using namespace std;int main(){typedef int (*HFUNC)(int a );HINSTANCE hDLL = LoadLibrary("testmydll.dll");if (hDLL){HFUNC hFun = (HFUNC)GetProcAddress(hDLL,"FuncTest");if (hFun){int a =1;int b = hFun(a);printf("%d\n",b);}}}
编译执行则调用了dlltest.dll 打印出100
如果是调用 dlltest.lib的话,就要将dlltest.lib拷贝到工程目录下(Debug上一级),编译的时候就直接链接了,另外还要把头文件 dlltest.h加到工程中
Win32项目中dll.cpp中的代码如下
#include <iostream> #include "string" #include <stdio.h> #include <windows.h>#include "dlltest.h"using namespace std;#pragma comment(lib,"testmydll.lib")__declspec(dllimport) int FuncTest(int a );int main(){int b = FuncTest(1);printf("%d\n",b);return 0;}
编译执行打印出100
- 一个简单的调用动态库的实例
- 一个简单的内部调用BAPI实例
- 一个简单的Android 动态Fragment实例
- 动态规划的一个简单实例java
- JDK动态代理的一个最简单的实例
- python调用c函数的一个简单实例
- 一个简单的动态内表应用实例
- 动态调用一个类的简单例子(java反射)
- Qt5.9动态调用c++的dll方法(Qt5.9调用MQTT的一个实例)
- RMI调用的简单实例
- 使用VS2010建立一个简单的DLL(动态链接库)实例
- dll的静态调用和动态调用使用说明及简单实例
- 简单Demo:动态调用自己编写的动态链接库
- 动态库的一个简单示例
- 一个简单的ajax实例
- 一个简单的AJAX实例
- 一个简单分页的实例
- 一个简单的Hibernate实例
- #pragma DATA_SECTION
- Ubuntu KVM Client OS创建 一
- 让WebApp在浏览器中直接获得原生应用体验 - 基于Rexsee开发平台的UP移动浏览器发布测试
- 代码实现Apk的安装与卸载
- 找出窗体中指定控件(WINFORM && WEBFORM)
- 一个简单的调用动态库的实例
- SEED-DVS6446 FAQs归纳整理
- 回车与换行的区别
- AnimatedGifEncoder.java源码(处理GIF图片)
- 如何使用NSOperations和NSOperationQueues(二)
- Mongodb VS Hbase
- 在shell中进行字符串处理的小尝试
- IOS开发之程序首次启动时加载关于程序应用的简介
- 1 An Overview of the Tesseract OCR Engine