GetProcAddress()方法返回NULL值的问题

2023-11-08

使用动态加载的方式使用动态库。
loadlibrary()成功加载动态库
之后使用GetProcAddress()方法得到函数指针却返回空值,使用GetLastError()方法得到错误代码127
出现此错误的原因一般是要加载的函数名称与动态库中函数名称不一致,要从库中加载的函数名为multiply
depends.exe查看动态库文件,函数名称是?multiply@@YAIXZ,这是使用c++编译后的函数修饰名
在这里插入图片描述

怀疑是动态库导出的函数符号名字问题
动态库头文件

#pragma once
__declspec(dllexport) int multiply(int);
class __declspec(dllexport) cABC{
private:
	char symbol;
public:
	cABC(char symbol);
	void print_l();
};

百度原因,使用extern “C”可以将导出函数名字固定。c与c++编译器不同。c++支持函数重载,实现方法是在编译阶段的函数被重命名变成函数名加参数名,类似?multiply@@YAIXZ这种代号,而c编译器就不会有这种机制了。加入extern “C”,能够实现c/c++混合编程。程序按照c编译器的方式编译链接。<

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GetProcAddress()方法返回NULL值的问题 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 在 Windows 上不使用 OpenSSL 从 pfx 文件或证书存储中提取私钥

    正如标题所示 我想在不使用 OpenSSL 或任何其他第三方工具的情况下导出我的私钥 如果我需要一个 cer文件或 pfx我可以通过 MMC 或 PowerShell 轻松导出这些文件pkiclient但我找不到获取私钥的方法 https
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi

随机推荐

  • 推荐系统学习笔记-冷启动

    简介 推荐系统的主要目标是将大量的标的物推荐给可能喜欢的海量用户 这里涉及到标的物和用户两类对象 任何互联网推荐产品 标的物和用户都是不断增长变化的 所以一定会频繁面对新标的物和新用户 推荐系统冷启动问题指的就是对于新注册的用户或者新入库的
  • 「Hive」json数据解析get_json_object函数的用法

    应用场景 提取以json字符串的方式存储的数据 用法 get json object expr path expr 包含格式正确的 JSON 的 STRING 表达式 或字段名 path 包含格式正确的 JSON 路径的 STRING 文本
  • Datawhale 李宏毅机器学习 Task1

    目录 一 简单理解机器学习 二 机器学习基本步骤 三 机器学习相关步骤 1 监督学习 2 半监督学习 3 迁移学习 4 无监督学习 5 监督学习中的结构化学习 6 强化学习 四 学习总结 一 简单理解机器学习 就像是生物本能 比如河狸修水坝
  • Jmeter-验证码(图片base64加密+uuid)

    适用于验证码为img 图片base64加密 标识 uuid 的情况 1 先下载OcrServer图片识别工具 2 添加验证码获取的http请求 3 通过json提取器获取img和uuid 4 调用http请求获取OcrServer识别的结果
  • ovirt超整合部署记录

    网络磁盘设置 root ovirt106 ping www 163 com PING z163picipv6 v bsgslb cn 221 233 240 109 56 84 bytes of data 64 bytes from 221
  • 【前端】neo4j导出json数据可视化

    占位贴 提醒自己有时间了把源码和思路提供一下
  • ArcgisOpr CXX0030

    这个错误我是找了好多天才找到了 AE ArcgisEngine 在用VC环境进行开发时 对license的初始化失败 并在VC的编译输出窗口中提示Could not bind to a valid ArcGIS installation 是
  • UnitTest单元测试框架解析【实用篇】

    UnitTest是展开自动化测试的基础 这个框架很重要 首先我们先自己写一个测试类 1 被测试类 Widthget py coding utf 8class Widthget def init self size 10 10 self si
  • 常用的正则表达式总结(慢慢增加中。。。)

    1 0 100 内的数字 不包含0 100 排除0 0 0 00 保留三位小数 1 9 1 2 d 1 3 0 0 9 1 2 1 9 2 0 100 内的数字包含0 100 保留三位小数 d 1 2 d 1 3 100
  • Java将jar包打成exe包

    如何获取jar包 1 如果是maven项目 2 如果是SpringBoot项目 添加maven插件 直接使用maven插件进行打包 Jar打包成exe 准备 相关的jar Exe4j应用程序 地址 https www ej technolo
  • 第三届Python数据分析职业技能比赛A题

    第三届Python数据分析职业技能比赛A题 Hello World 赛题 竞赛背景 字段说明 考核目标 任务 任务一 数据预处理 任务二 数据可视化 任务三 数据分析 任务一思路 1 2 1 3 任务二思路 2 1 2 2 2 3 任务三思
  • 禅道程序员的10条原则

    在一个阴雨的早上 我坐在桌子旁 开始想如何才能高效的工作 在我成为一个自由职业者之前 我有很长一段时间都很努力工作 但收效甚微 我在2006开始接触禅学 我马上意识到 古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工作 虽然我很讨
  • 如何通过官方渠道下载任意版本的Spring相关的jar包

    1 进入官网http spring io 2 第二步 点击PROJECTS 3 点击SPRING FRAMEWORK 4 点击上一步中GitHub图标 进入下面的页面 第五步 把第四步出现的页面往下拉 找到 Spring Framework
  • python Matplotlib画图之调整字体大小的示例

    本文来源于公众号 csdn2299 喜欢可以关注公众号 程序员学府 本篇文章主要介绍了python Matplotlib画图之调整字体大小的示例 小编觉得挺不错的 现在分享给大家 也给大家做个参考 一起跟随小编过来看看吧 一张字体调整好的示
  • 不能在slot上绑定和触发事件

    在 slot 上进行事件的监听和分发 这是不可能的 组件的 slot 由调用它的父组件提供 这意味着所有事件都应该与父组件相关联 尝试去倾听这些变化意味着你的父子组件是紧密耦合的 可以使用 parent 来操作 div div
  • 5.1广度优先遍历的递归与迭代实现;

    队列先进先出的性质 符合 广度优先遍历时 一层一层的遍历逻辑 lc102 102 二叉树的层序遍历 107 二叉树的层次遍历II 199 二叉树的右视图 637 二叉树的层平均值 429 N叉树的层序遍历 515 在每个树行中找最大值 11
  • 谭铁牛:人工智能 找风口不如找关口

    不过我们不能光打打嘴炮 如何克服困难和挑战 让人工智能帮到你的工作 你的事业呢 让我们将李开复的演讲内容 再结合一个实例 来给大家解释一下 现在 假设你是一个程序员 虽然哥也是一媒体人 但黑起自己的行业来是丝毫不会手软的 假设你现在是一家媒
  • Python库

    库名称简介 Chardet字符编码探测器 可以自动检测文本 网页 xml的编码 colorama主要用来给文本添加各种颜色 并且非常简单易用 Prettytable主要用于在终端或浏览器端构建格式化的输出 difflib Python 标准
  • openwrt添加自己的应用程序(SDK下编译模块)出现的问题

    openwrt 版本 15 05 CC 最近在openwrt里面想编写一个串口的读写程序 没想到会出现以下问题 1 编译的时候 以下为网友遇到的问题 Package helloworld is missing dependencies fo
  • GetProcAddress()方法返回NULL值的问题

    使用动态加载的方式使用动态库 loadlibrary 成功加载动态库 之后使用GetProcAddress 方法得到函数指针却返回空值 使用GetLastError 方法得到错误代码127 出现此错误的原因一般是要加载的函数名称与动态库中函