在 Visual C++ 中使用 dllimport

2024-01-16

我已经有几年没有做过任何 Windows 编程了,而且我对如何使用 dllimport 有点生疏了。我有一些类似的事情:

extern "C"
{
__declspec(dllimport) int myFunct();
}

int main()
{
   cout<<myFunct();
}

我收到 2 个未解决的外部链接器错误和一条警告,提示 /DELAYLOAD:myLib.dll 被忽略,因为未找到从中导入的内容。 我在这里缺少什么?我认为我可以将 DLL 添加到延迟加载路径,并且链接器会计算将其用于 dll 导入?

这是一个第三方 DLL,没有 .h 或 .lib 文件。


如果你想在运行时链接DLL,你根本不需要导入符号。

只需声明一个函数指针类型,然后LoadLibrary() http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175%28v=vs.85%29.aspx/LoadLibraryEx() http://msdn.microsoft.com/en-us/library/windows/desktop/ms684179%28v=vs.85%29.aspx,最后从中检索函数指针GetProcAddress() http://msdn.microsoft.com/en-us/library/windows/desktop/ms683212%28v=vs.85%29.aspx.

示例(为简洁起见,省略了错误处理):

typedef int (*MyFunct_t)();
auto myDLL = LoadLibrary("mydll.dll");
auto MyFunct = (MyFunct_t)GetProcAddress(myDLL, "MyFunct");
MyFunct();

(this code is only to show general procedure, it was never compiled and tested and could contain typos and syntax errors, feel free to edit this post to fix them)

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

在 Visual C++ 中使用 dllimport 的相关文章

  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 随机状态代码:连接到 lambda 的 AWS api 网关出现 502 错误

    我使用代理集成通过 api 网关公开了多个 lambda 有时我会收到状态代码 502 的奇怪错误 lambda 云监视日志中没有任何内容 下面我发布了示例请求的 API 网关日志 0cbbd9f5 f1bd 11e7 92c0 4d5d3
  • Android Studio模拟器参数

    Android studio 使用这样的命令行启动模拟器 Users sergey Library Android sdk tools emulator avd Nexus 5 API 22 x86 netspeed full netdel
  • GUI 屏幕转换在 qml 中如何工作

    我是一名 C 开发人员 现在正在研究在 QtQuick 中使用 QML 进行 GUI 开发 在 GUI 创建过程中 用户只能看到一个屏幕 并根据用户交互来切换屏幕 但背后究竟发生了什么 有很多信息仅涉及如何设计单个屏幕 但有关如何管理其状态
  • 设置 1000 到 10.00 之间数字的格式

    我想将 1000 格式化为 10 00 PHP number format 函数似乎对此不起作用 我努力了 amount2 number format cost 2 echo cost 有任何想法吗 有没有办法可以操作 number for
  • C# 垃圾收集器交叉引用

    垃圾收集器是否会为交叉引用的对象 类释放资源 该对象 类不再从主程序中引用 例如 class class1 class2 m RefClass2 class class2 class1 m RefClass1 class class3 pu
  • 如何用Python实现看门狗定时器?

    我想用 Python 实现一个简单的看门狗定时器 有两个用例 看门狗确保函数的执行时间不会超过x seconds 看门狗确保某些定期执行的函数确实至少执行y seconds 我怎么做 只是发布我自己的解决方案 from threading
  • 从另一台机器访问 Mac OS X 上的 Jenkins

    我想从路由器和互联网后面到达詹金斯 非常简单的设置 互联网 gt 路由器 gt Mac gt Jenkins 已知项目 从路由器上 我可以看到机器的内部 IP 我将其称为 X X X X 然后是Jenkins中的Jenkins URL位置配
  • 无法删除对象“dbo.Table1”,因为它由 FOREIGN KEY 约束引用

    即使我正在删除并尝试删除表 我也会收到错误 ALTER TABLE dbo Table1 DROP CONSTRAINT FK Table1 Table2 GO DROP TABLE dbo Table1 GO Error 消息 3726
  • C# 小数舍入不一致吗?

    我一直在与来自 SQL Decimal 38 30 的 C 中的小数精度作斗争 最终我终于将其实现了四舍五入的奇怪效果 我知道我可能忽略了这里显而易见的事情 但我需要一点洞察力 我遇到的问题是 C 无法产生我认为一致的输出 decimal
  • C和C++中return 0有什么意义? [复制]

    这个问题在这里已经有答案了 我需要最简单的答案 我在各个网站上查找了答案 如果程序的输入导致输出为 10 则命令 return 0 是否会强制程序返回值 0 而不是 10 我在 Borland IDE 上编写了简单的 C 程序 没有返回 0
  • 指针是否被视为 C 中通过引用调用的方法?

    在我大学的 C 编程课上 教授和她随后写的书使用了这个术语调用或通过引用传递当提到pointers in C 我的教授认为 通过引用调用函数 的示例 int sum int a int b 我的教授认为 按值调用函数 的一个示例 int s
  • 使用 Envoy 在网络之间建立隧道

    对于混合云用例 我们正在研究 EnvoyProxy 是否适合作为跨本地防火墙移动数据的解决方案 预期的设置如下 应用程序 A 位于本地网络中 没有直接出站或入站 Internet 连接 App B 位于云端 Envoy代理 PC 放置在云端
  • 计算两个值之间的百分比

    我有两列保存数字 我试图计算它们之间的百分比差异并在另一列中显示结果 但结果似乎是错误的 这是有问题的代码 SELECT GenPar ParameterValue AS ClaimType COUNT Submitted ClaimNum
  • 当两个数组有序时,如何进行就地排序?

    我正在研究这个问题 https stackoverflow com questions 4673854 sort with threads 4674052 我的函数原型是 static void Sort byte arr int left
  • JavaScript 中的多语言警报消息

    我有一个 php Web 应用程序多语言 我有一个 php 变量 它可以告诉 Web 应用程序的当前语言 我需要在客户端验证用户输入 并且错误消息会通过 JavaScript 警报显示 例如 如果 php 语言变量是 french 我需要将
  • 应用内购买沙盒 - 地址无效

    我已经在很多应用程序中实现了应用内购买 并在沙盒环境中测试了所有这些应用程序 现在 我正在开发该应用程序的应用程序内购买之一 我昨天测试了该应用程序并且工作正常 但到今天早上 现有的沙箱帐户都没有用于应用程序内测试 我跟着其中一个苹果thr
  • 修改函数内的变量[重复]

    这个问题在这里已经有答案了 假设我有一个内联脚本标记 其代码非常简单 如下所示 function var test This is a simple test function modifyTest s s Modified test te
  • C# 中的 C++ CString 等效项

    是什么C 相当于 MFC 的CString 大概System String 但为了提供更多有用的信息 System String实例是不可变的 连接 子字符串 等实际上创建了新的字符串对象 因此使用字符串实例作为构建输出的缓冲区是一个非常糟
  • Android Studio 2.0 IllegalArgumentException:按钮不存在0

    在Ubuntu上使用android studio 2 0稳定版本和之前的1 5版本 我总是遇到这个异常 有任何想法吗 It appears in the EventLog None
  • 在 Visual C++ 中使用 dllimport

    我已经有几年没有做过任何 Windows 编程了 而且我对如何使用 dllimport 有点生疏了 我有一些类似的事情 extern C declspec dllimport int myFunct int main cout lt