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

相关文章

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

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录(失败记录)

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录 这次是装实体机,一次失败的尝试。。。 名称型号CPUIntel Xeon E5-2673 V3GPURTX 3060 mobile 安装的时候不要选install third-party software for graphics and Wi-fi hardware and additional media

阿里大数据一次简单而失败的面试题回忆

一面 简单介绍一下自己以及自己做过的项目;Java HashMap 是不是线程安全的?为什么?请用 Java 写个单例模式知道几种 GC 算法?如何实现一个高效的单项列表逆向输出?数据湖和数据仓库有什么区别?详细介绍下 Flink 的 Checkpoint 执行机制(分布式快照)算法题:寻找两个正序数组的中位数 二面 如何在两个进程间共享数据?线程呢?如何在 main 函数里面等待一个线程执