C# 导入 C++ dll

2023-11-25

我有一个托管 dll 文件,它将函数从 C++ dll 导入到托管环境。我在程序中使用了它的一些函数,但问题是,当我使用它时出现此错误:

无法加载 DLL“Libraries\lib.dll”:找不到指定的模块。 (HRESULT 异常:0x8007007E)

我将 .dll 文件放置在程序目录和 system32 文件夹中。然而,它仍然不起作用。我想我必须使用 DLLImport 但我不知道如何使用它..即使在看了一些例子之后我仍然很困惑。有人可以帮我吗?


You say:

我将 .dll 文件放在程序的目录中...

But:

无法加载DLL'库\lib.dll'

我们需要看看你的DLLImport属性创建,即本机方法的 C# 签名。在我看来,您可能指定了路径,即

[DllImport( "Libraries\lib.dll" )];
static extern void MyNativeMethod();

尝试使用这个代替:

[DllImport( "lib.dll" )];
static extern void MyNativeMethod();

这将搜索运行目录以及您的PATH环境变量。如果您像您一样指定文件路径,我真的不知道它是否会搜索PATH如果找不到该文件(我在the docs).

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

C# 导入 C++ dll 的相关文章

  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 32 位应用程序的特征最大矩阵大小

    所以 我正在寻找Eigen http eigen tuxfamily org index php title Main Page当我尝试声明大于 10000x10000 的矩阵时 包崩溃 我需要声明一个像这样的矩阵 可靠地大约有 13000
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 如何识别 WPF 文本框中的 ValidationError 工具提示位置

    我添加了一个箭头来指示工具提示中的文本框 当文本框远离屏幕边缘时 这非常有效 但是当它靠近屏幕边缘时 工具提示位置发生变化 箭头显示在左侧 Here is the Image Correct as expected since TextBo
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 在 C 中使用 GNU automake 中的解析器

    我是 GNU autotools 的新手 在我的项目中使用了 lex 和 yacc 解析器 将它们作为 makefile am 中的源代码会产生以下错误 配置 in AC CHECK PROGS YACC bison yacc none i
  • 如何挤出平面 2D 网格并赋予其深度

    我有一组共面 连接的三角形 即二维网格 现在我需要将其在 z 轴上挤出几个单位 网格由一组顶点定义 渲染器通过与三角形数组匹配来理解这些顶点 网格示例 顶点 0 0 0 10 0 0 10 10 0 0 10 0 所以这里我们有一个二维正方
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 我在在线程序挑战编译器中遇到演示错误

    include

随机推荐

  • SimpleDateFormat:无法解析的日期异常

    在查看了几篇现有的帖子后 我仍然无法让我的 SimpleDateFormat 解析器正常工作 这是代码 SimpleDateFormat df new SimpleDateFormat EEE dd MMM yyyy HH mm ss Z
  • 如何在ARCore中显示PNG图像?

    我想在 Arcore 中显示 2d png 图像 我不想使用 obj smf imgdb 文件和 3D 图像 我已经引用了很多链接 但没有一个链接显示如何使用 Arcore 仅显示 2d png 图像 https github com go
  • Java:在小程序中将pdf文件从URL读取到字节数组/ByteBuffer中

    我试图找出为什么这个特定的代码片段对我不起作用 我有一个小程序 它应该读取 pdf 并使用 pdf 渲染器库显示它 但由于某种原因 当我读取服务器上的 pdf 文件时 它们最终被损坏 我已经通过再次写回文件来测试它 我尝试在 IE 和 Fi
  • PHP将csv列读入数组

    我有一个 php 函数可以让我将 csv 列 COLUMN NOT LINE 读取到数组或字符串中 先感谢您 csv array map str getcsv file data csv header array shift csv Sep
  • 使用 socket.gethostname 时,socket.getfqdn() 和 socket.gethostname() 给出不同的 IP 地址

    我正在运行一个虚拟机 它提供以下值以及运行代码的时间 通过在网站上执行一些操作 socket getfqdn x vps 01 abc it socket gethostname x vps 01 socket gethostbyname
  • 如果没有断言,pytest 会失败吗?

    今天我的测试失败了 但很高兴成功了 因为我忘记了最后一行相当重要的一行 assert actual expected 我希望机器将来能够发现这个错误 有没有办法让 pytest 检测测试函数是否未断言任何内容 并将其视为测试失败 当然 这需
  • firestore 规则中是否有循环?

    我想知道是否有更简单的方法来实现这个规则 刚刚开始尝试 firestore match emails emailId allow write if request resource data attachments size 0 reque
  • 在C#背后的代码中实现javascript确认框

    我想从代码后面实现javascript确认框 我的要求是在一种方法中我需要提出一个确认框 根据结果我需要实现差异功能 例如 如果确认框确定 则添加税费 如果取消则不加税 我正在尝试这样的事情 但它对我没有帮助 ScriptManager R
  • Netcat:使用 nc -l port_number 而不是 nc -l -p port_number

    这个问题是在这个问题之后 在 openSUSE 中工作的套接字在 Debian 中不起作用 在 Debian 系统上使用套接字时 我必须使用 nc l p port number 来模拟我想要与之通信的服务器 如果我使用 nc l port
  • 使用 Oracle 的块过程 PL/SQL

    我有一个程序 我希望只有一个用户可以同时执行该程序 这就是我的想法 考虑通过 dbms lock 使用命名锁 http download oracle com docs cd B28359 01 appdev 111 b28419 d lo
  • RESTful 应用程序中的乐观锁定

    在工作中 我们正在开发一个 RESTful 应用程序 其中数据层将由 Hibernate 处理 但我们不确定如何处理实体的更新 我们计划执行以下操作 1 客户端通过id请求实体2 Hibernate加载实体 请求的字段 始终带有版本 被复制
  • 如何使用 asyncio 连接阻塞和非阻塞代码

    我正在尝试在事件循环之外使用协程函数 在本例中 我想调用 Django 中的一个函数 该函数也可以在事件循环内使用 如果不让调用函数成为协程 似乎没有办法做到这一点 我意识到 Django 被构建为阻塞的 因此与 asyncio 不兼容 尽
  • Pandas 在第 0 个位置插入空行

    假设有以下数据框 A B 1 2 3 4 5 4 5 6 7 8 我想检查一下是否df 0 0 is nan然后在第 0 个位置插入 pd series np nan 所以在上面的情况下将会是 A B 1 2 3 4 5 4 5 6 7 8
  • 什么是 void `std::allocator`?即:`std::allocator`

    自动生成ROS 机器人操作系统 message C 头文件包含如下类型定义 typedef std msgs Header
  • 从“AutoCompleteTextView”获取当前建议

    如何获得当前最热门的建议AutoCompleteTextView 我有它建议的项目 并且我注册了一个文本更改侦听器 我在同一屏幕上还有一个列表 当他们打字时 我想将列表滚动到当前的 最佳 建议 但我不知道如何访问当前的建议 或者至少是最重要
  • 在 vim 上将项目设置为更高的突出显示优先级

    我想按照讨论显示非 ASCII 字符here 但是当注释中包含非 ASCII 字符时 语法突出显示会消失 调查了一下这个问题 我在 vim 手册中发现较早启动的项目具有更高的优先级 第三项 从help syn priority 当多个语法项
  • 如何以 clang 格式对齐函数参数名称?

    是否可以使用clang format将结构成员和函数参数名称格式化为列 例如 struct int alpha aligned to b of beta unsigned int beta MyObject gamma aligned wi
  • 重写标准 Spring MVC 异常的处理行为

    Spring Boot 似乎有处理某些异常的默认行为 我有一个休息控制器 如果我不处理HttpRequestMethodNotSupportedException in the ControllerAdvice带注释的休息控制器 应用程序返
  • SELECT DISTINCT 值并 INSERT INTO 表

    我想获取一个包含重复多次的值的列 并仅获取该值一次并将其存储以供以后使用 但同时我想在与该不同列相同的行中获取另一个值 A B C 32263 123456 44 32263 123456 45 32263 123456 46 32264
  • C# 导入 C++ dll

    我有一个托管 dll 文件 它将函数从 C dll 导入到托管环境 我在程序中使用了它的一些函数 但问题是 当我使用它时出现此错误 无法加载 DLL Libraries lib dll 找不到指定的模块 HRESULT 异常 0x80070