VC动态调用DLL
2017-06-26 11:10
363 查看
1、
2、
3、VS2010 动态调用 DLL示例:
4、
5、
//函数指针声明 typedef int (_stdcall MYDLLFUN)(char* _pcOut, /*INOUT*/int *_piOutBufLen, char* _pcIn, int _iInBufLen);
2、
HINSTANCE hmydll=::LoadLibrary("_DrCompressDll.DLL"); mydllfun=(MYDLLFUN *)::GetProcAddress(hmydll, "CompressZ");
3、VS2010 动态调用 DLL示例:
#include <stdio.h> #include <Windows.h> typedef int (__stdcall *TfnC_ExecJS)( void *_pSvgFrm, char* _pcJS );//定义形式对应的函数指针类型 typedef int (__stdcall *TfnD_PassStId)( void *Sender, char* _pcStId ); #define DLL_NAME "DrRemoteCall.dll" TfnC_ExecJS g_fnExecJS = NULL;//声明一个函数指针 TfnD_PassStId g_fnPassStId = NULL; void main() { HINSTANCE hDll = LoadLibraryA(DLL_NAME); if(hDll == NULL) { printf("无法载入dll : %s\n", DLL_NAME); FreeLibrary(hDll); getchar(); return; } g_fnExecJS = (TfnC_ExecJS)GetProcAddress(hDll, "ExecJS"); if(g_fnExecJS == NULL) { printf("无法获取函数地址(ExecJS)\n"); FreeLibrary(hDll); getchar(); return; } g_fnPassStId = (TfnD_PassStId)GetProcAddress(hDll, "PassStId"); if(g_fnPassStId == NULL) { printf("无法获取函数地址(PassStId)\n"); FreeLibrary(hDll); getchar(); return; } // 调用函数 int iRtn = g_fnPassStId(NULL, "TestA"); printf("PassStId return %d\n", iRtn); FreeLibrary(hDll); getchar(); return; }
4、
5、
相关文章推荐
- VC中使用动态链接库DLL:静态调用和动态调用
- vc 调用dll 静态调用和动态调用.
- DLL DEF文件编写方法 VC++ 调用、调试DLL的方法 显式(静态)调用、隐式(动态)调用
- VC中使用动态链接库DLL:静态调用和动态调用
- VC动态调用DLL
- VC中调用动态库文件Dll
- VC6动态调用DELPHI DLL
- VC动态调用DLL的调试方法
- VC++ DLL的创建与动态调用模板
- 关于C#动态调用VC Dll的方法(转)
- VC++ .NET 动态加载DLL,使用反射方式Invoke委托调用
- VC动态调用DLL的调试方法
- VC动态调用DLL
- VC与Matlab混合编程之调用动态链接库dll(C++)——<二>
- [VC]MFC程序动态调用plugin DLL的方式
- VC动态调用DLL的调试方法
- BCB2009 动态调用VC生成的DLL
- PB调用VC编写的动态链接库
- 再谈在VB中调用VC++开发的DLL
- 工厂方法-接口-动态调用DLL