问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于C++加载DLL文件 用的LoadLibrary方法的问题

发布网友 发布时间:2022-05-06 19:11

我来回答

4个回答

热心网友 时间:2023-09-12 01:50

LoadLibrary不是加载DLL文件,LoadLibrary出现是系统设置错误导致。

如下参考:

1.按下Win+R组合键,输入控件,点击“确定”按钮,打开控制面板,如下图所示。

2.在控制面板界面,点击“硬件和声音”按钮,如下图所示。

3.再次点击“电源选项”按钮。

4.根据需要修改“balance”、“highperformance”等计划属性,分别点击“changeplanSettings”按钮。

5.再次点击“更改高级电源设置”按钮。

6.在电源选项窗口中,找到“可切换动态显卡-全局设置-性能最大化”选项,将相应的“用电量”和“开机电量”修改为“性能最大化”。此时,设置了power属性。

热心网友 时间:2023-09-12 01:51

/*
【1】静态调用
把TestDLL.lib和TestDLL.dll拷贝到你的测试工程下
你的dll声明方法_declspec(dllexport)是想要静态调用dll,所以需要添加如下代码:
//*/

#pragma comment(lib,"TestDLL.lib") /*(1)包含库文件,不写这句话,就需要通过程序配置包含这个库*/
_declspec(dllimport) int clFun(int a, int b);/*(2)声明函数是从dll中调用的,不写这句话,就需要包含头文件*/

void main()
{
int a = 1,b = 2,c =0;
c = clFun(a,b);
}

/*
【2】动态调用

你想用LoadLibrary方法,就属于动态调用,这时可以不加你的声明_declspec(dllexport),只需要在TestDLL工程目录下的.def文件中把你要调用的函数名加进去

; TestDLL.def : 声明 DLL 的模块参数。
LIBRARY "TestDLL"
EXPORTS
; 此处可以是显式导出
clFun

接下来TestDLL.dll拷贝到你的测试工程下,添加如下代码:
//*/

void main()
{
int a = 1,b = 2,c =0;

//定义一个函数指针
typedef int (* Any_name)(int param1, int param2);

//定义一个函数指针变量
Any_name pfFuncInDll = NULL;

//加载dll
HINSTANCE hinst=LoadLibrary(L"TestDLL.dll");

if ( hinst != NULL )
{
//找到dll的clFun函数
pfFuncInDll = (Any_name)GetProcAddress(hinst, "clFun");

//调用dll里的函数
if (pfFuncInDll != NULL )
{
c = pfFuncInDll(a,b);
}
FreeLibrary(hinst);
}
}

热心网友 时间:2023-09-12 01:51

可以参考如下语法:

HINSTANCE hDLL; // DLL句柄
typedef int __stdcall (*DLLFUN)(int a, int b);

DLLFUN Dll_clFun;

//读取:
if(hDLL == NULL)
hDLL=LoadLibrary((LPCTSTR)"TestDLL.dll");
if(hDLL)
{
Dll_clFun =(DLLFUN)GetProcAddress(hDLL,"clFun");
}
else
{
ShowMessage("加载DLL失败,程序退出");
}

//释放:
if(hDLL)
{
FreeLibrary(hDLL); // 卸下DLL 
hDLL = NULL;
}追问DLLFUN Dll_clFun;报错。。DLLFUN未声明的 这是什么?
typedef int __stdcall (*DLLFUN)(int a, int b); 报错。。语法错误:“(”

追答详细错误是在第几行呢?

试试把:
HINSTANCE hDLL; // DLL句柄
改成
HINSTANCE hDLL=NULL ; // DLL句柄

热心网友 时间:2023-09-12 01:52

#pragma comment(lib, "TestDLL.lib")
include 头文件
然后你懂的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
哪些女人不值得男人珍惜? 潘集区第一小学优秀学生 优秀干部登记表 ...没想到洗几次更大了 有什么办法能让他变小点吗 纯棉的 济南哪里卖手机放心,便宜 飞利浦手机在烟台的售后服务在哪里 ? 济南哪里有飞利浦专卖店 微信群内发红包,怎么会让陌生人就领取了???为什么?? 我的戴尔笔记本电脑 无意中出现飞行模式。关闭不了。求大家帮忙_百度知 ... 什么是受伤庄股 “收听广播”用英文怎么说 收听应该要用什么单词 系统无法加载DLL文件 加载内核的dll文件有哪些 java如何加载本地的dll文件 c#dll文件是如何被加载的 如何在 我99伴奏网 录歌啊??? 为什么我在wo99伴奏网下载不了伴奏? 我99伴奏网的人气是根据什么来的 DJ思宇,永远有个你DJ版 - wo99.com 我99大型伴奏下载翻唱网站--DJ思宇 提供者 DJ思宇 会员级别 普通会员 响应曲面法design expert中,±α是什么意思 如何通过响应面法等高线图判断两因素的交互作用 响应面优化实验可以一起做吗 为什么响应面的三维图很宽 响应曲面设计的特点 响应面一定是曲面吗,为什么我做出来的是这样,有没有大神解释下 幼儿发烧手脚冰凉是怎么回事 响应面法的适用范围 什么是响应曲面法? 响应面法的具体原理是什么? 响应面法和正交试验法有什么区别? 听广播用英语怎么说 ie加载 dll文件 FM88.1怎么读 旅游电台怎么读 广播室怎么读? 退专票需要带什么 增值税专用发票多长时间可以退票 增值税专用发票,退票问题,急!!!1 增值税专用发票退回怎么处理? 当月开据增值税专用发票认证后退票怎么处理 未认证的增值税专用发票在有效期内可以办理退票吗 隔月的专票开错了退票怎么退,需要去国税局办什么流程吗 未开的增值税专用发票退给税务局需要的流程 一件衣服生产出来的有几道工序,什么流程? 服装生产工艺与流程的图书目录 服装工业化生产的流程是什么? 冬天防止电热水器冻关掉水需要关掉热水器电源吗 热水器不用时要不要断电? 小米4x手机套怎么挂绳 电热水器不使用时需要断电吗?