GetProcAddress()失败 GetLastError 127

2024-03-16 09:50

本文主要是介绍GetProcAddress()失败 GetLastError 127,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

有错误127的代码如下:

#include<windows.h>#include<stdio.h>//#pragma comment(linker,"/export:add=dllA_old.add")HMODULE hModule=NULL; //模块句柄FARPROC proc; //函数入口指针typedef int (__cdecl *Add)(int a,int b);Add padd;BOOL APIENTRY DllMain( HANDLE hModule,                        DWORD  ul_reason_for_call,                        LPVOID lpReserved      )if(NULL==hModule) {  hModule=LoadLibrary("dllA_old.dll"); } if(NULL==hModule) {  MessageBoxA(NULL,"获取dllA_old.dll失败","caption",0);  return 0; }    return TRUE;}int add(int a,int b){ padd=(Add)GetProcAddress(hModule,"add");  //这里获取函数地址失败 127 if(NULL==padd) {  char msg[256];  sprintf(msg,"获取add()失败:%d",GetLastError());  MessageBoxA(NULL,msg,"caption",0);  return 0; } return padd(a,b);}


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

修改方法,就是在add函数中,进行加装dll操作,而不是在dll的入口处加载dll文件,代码如下:

#include<windows.h>#include<stdio.h>//#pragma comment(linker,"/export:add=dllA_old.add")HMODULE hModule=NULL; //模块句柄FARPROC proc; //函数入口指针typedef int (__cdecl *Add)(int a,int b);Add padd;BOOL APIENTRY DllMain( HANDLE hModule,                        DWORD  ul_reason_for_call,                        LPVOID lpReserved      )if(NULL==hModule) {  hModule=LoadLibrary("dllA_old.dll"); } if(NULL==hModule) {  MessageBoxA(NULL,"获取dllA_old.dll失败","caption",0);  return 0; }    return TRUE;}int add(int a,int b){ hModule=LoadLibrary("dllA_old.dll"); //在这里加载哈 padd=(Add)GetProcAddress(hModule,"add"); if(NULL==padd) {  char msg[256];  sprintf(msg,"获取add()失败:%d",GetLastError());  MessageBoxA(NULL,msg,"caption",0);  return 0; } return padd(a,b);}


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

您的十分满意是我追求的宗旨。

您的一点建议是我后续的动力。

 

 

 

 

 

 

 

 

 

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述

这篇关于GetProcAddress()失败 GetLastError 127的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815093

相关文章

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

ssh版本升级导致连接失败

公司系统使用的是第三方ssh插件jsch-0.1.39.jar,之前采集正常的,但是厂家服务器ssh升级成2.0版本,然后程序就报错,异常如下: com.jcraft.jsch.JSchException: Algorithm negotiation failat com.jcraft.jsch.Session.receive_kexinit(Session.java:510)at com.

利用PL/SQL工具连接Oracle数据库的时候,报错:ORA-12638: 身份证明检索失败的解决办法

找到相对应的安装目录:比如:E:\oracle\product\10.2.0\client_1\NETWORK\ADMIN 在里面找到:SQLNET.AUTHENTICATION_SERVICES= (NTS) 将其更改为:SQLNET.AUTHENTICATION_SERVICES= (BEQ,NONE) 或者注释掉:#SQLNET.AUTHENTICATION_SERVICES= (N

Java应用对接pinpoint监控工具的时候,应用名称长度超出限制而导致接入失败

一、背景 java应用需要接入pinpoint,同一个虚拟机上的其他应用接入成功,唯独本应用不行。 首先排除是pinpoint agent的问题,因为其他应用都正常。 然后,我就对比二者的启动脚本。 -javaagent:/opt/pinpoint/pinpoint-bootstrap.jar -Dpinpoint.agentId=DA301004_17 -Dpinpoint.applic

Windows环境下SD卡多分区 隐藏分区 解决python裸读写扇区失败

SD卡分区 右键“我的电脑”->“管理”->“磁盘管理”; 如果SD卡有文件系统,点击"删除卷",重新做卡; 删除文件系统后如下图,点击“新建简单卷”; 在导航页“指定卷大小”,设置分区的大小,留出剩余的空间; python读写SD卡 这里需要注意的是,写SD卡需要加锁,否则写不成功 #带文件系统,需要锁定卷,否则无法写扇区@contextlib.contextmanagerd

openssh 传文件失败解决方法

应用工程师反馈使用linux中SSHD上传升级文件sftp显示传输成功,但重启后文件大小为0. 经定位是 openssh 中的sftp-server 在传输完毕后没有及时把文件内容从内存中写到文件 解决方法 ,修改openssh 中sftp-server.c代码 ,在传输完成时执行如下脚本命令: $ sync $ echo 3 >/proc/sys/vm/drop_caches 上面的ec

Oracle ADG Broker主备切换报错失败处理

Oracle ADG Broker主备切换报错失败处理 问题症状解决办法 ⭐️ Oracle数据库版本为19.18。 问题症状 通过DG Broker发起主备切换: DGMGRL> show configurationConfiguration - dg_msgdbProtection Mode: MaxPerformanceMembers:msgdb_1 - Prim