MFC调用一个DLL

MFC调用一个DLL,第1张

szPath确认无误?把TickerApidll文件放到了Debug下面了还用这么复杂干嘛?直接if

((hInstTApiLib

=

LoadLibrary

(L"TickerApidll"))

==

NULL)

或者

if

((hInstTApiLib

=

LoadLibrary

("TickerApidll"))

==

NULL)不就结了?我这样用过没什么问题。

调用DLL有两种方法:静态调用和动态调用

(一)静态调用其步骤如下:

1把你的youAppDLL拷到你目标工程(需调用youAppDLL的工程)的Debug目录下;

2把你的youApplib拷到你目标工程(需调用youAppDLL的工程)目录下;

3把你的youApph(包含输出函数的定义)拷到你目标工程(需调用youAppDLL的工程)目录下;

4打开你的目标工程选中工程,选择Visual C++的Project主菜单的Settings菜单;

5执行第4步后,VC将会d出一个对话框,在对话框的多页显示控件中选择Link页。然后在Object/library modules输入框中输入:youApplib

6选择你的目标工程Head Files加入:youApph文件;

7最后在你目标工程(cpp,需要调用DLL中的函数)中包含你的:#include "youApph"

注:youApp是你DLL的工程名。

(二)动态调用其程序如下:

动态调用时只需做静态调用步骤1

01 {

02 HINSTANCE hDllInst = LoadLibrary("youAppDLL");

03 if(hDllInst)

04 {

05 typedef DWORD (WINAPI MYFUNC)(DWORD,DWORD);

06 MYFUNC youFuntionNameAlias = NULL;

07 // youFuntionNameAlias 函数别名

08 youFuntionNameAlias = (MYFUNC)GetProcAddress(hDllInst,"youFuntionName");

09 // youFuntionName 在DLL中声明的函数名

10 if(youFuntionNameAlias)

11 {

12 youFuntionNameAlias(param1,param2);

13 }

14 FreeLibrary(hDllInst);

15 }

16 }

显式(静态)调用:

LIB + DLL + H,注意H中dllexport改为dllimport

隐式(动态)调用:

DLL + 函数原型声明,先LoadLibrary,再GetProcAddress(即找到DLL中函数的地址),不用后FreeLibrary

你可以尝试将构造函数和析构函数一起导出,并且,将编译DLL文件时生成的LIB文件添加到调用DLL的项目中

如果还不行,请将定义DLL的头文件贴出来分析

------------------------------------------------------------------

补充:

MFC扩展DLL只能由MFC的应用程序调用,请问你调用DLL的程序是什么类型

其实这个问题比较简单,肯定是你遗忘了其中的一个步骤。在CPP中写函数的时候要声明 _declspec(dllexport) 另外比较重要的一点是要在def模块中声明导出函数。点击File,在source文件中有一个def文件,在这个里面声明 Exports 你的函数名。比如 Expots Add 。然后其他调用的步骤和原来一样,然后你就会发现编译已经正确了,链接也已经通过了。祝你好运!

dll文件一般被存放在C:\Windows\System目录下。电脑系统文件因经常会受到病毒的侵扰,导致系统文件、dll文件等丢失、损坏,一些包括游戏在内的应用程序无法启动。

解决方法有:

1、用Windows系统盘功能进行文件修复;

2、若在此之前有一键备份过,可以重新还原;

3、从网上下载系统文件然后覆盖到原文件夹里;

4、由于从网上下载系统文件,可能会因为系统文件版本与 *** 作系统不相符造成系统文件不兼容的情况,修复系统文件最好使用专业的工具进行一键修复。

5、可以用腾讯电脑管家修复下。打开电脑管家——电脑诊所——软件问题——缺少dll文件。

以上就是关于MFC调用一个DLL全部的内容,包括:MFC调用一个DLL、VS2005中通过MFC生成的DLL文件,怎样在另外一个C++的Main函数中调用、vs2017mfc程序怎么调用mfc dll等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10214477.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存