c#调用C++DLL EntryPointNotFoundException 找不到入口点

2023-05-16

From: http://www.voidcn.com/article/p-kqogmify-rh.html

c#程序调用C++的dll的时候,经常出现这样的问题:


System.EntryPointNotFoundException:Unable to find an entry point   

代码: 

[DllImport("LibUsb.dll", EntryPoint = "USB_lib_Open", CharSet = CharSet.Unicode)]
internal static extern Int16 USB_lib_Open(ref USBLibCom.LIB_INFO libInfo, Int16 Id);
// 调用
Int16 retVal = USB_lib_Open(ref libInfo, 0);


查询了以下资料,结果找到了原因。

原因就是:c++源代码中的函数在编译成DLL后,函数的名称就发生了改变:会在函数的前后产生一些字符。所以找不到方法的入口点。

我们能通过Depends软件来查看c++编译后的函数名称是什么。

 

例子:原方法名USB_lib_Open,编译后:?USB_lib_Open@@YGHPAUst_SCAMv3_LIB_INFO@@H@Z

修改后:

[DllImport("LibUsb.dll", EntryPoint = "?USB_lib_Open@@YGHPAUst_SCAMv3_LIB_INFO@@H@Z", CharSet = CharSet.Unicode)]
internal static extern Int16 USB_lib_Open(ref USBLibCom.LIB_INFO libInfo, Int16 Id);
// 调用
Int16 retVal = USB_lib_Open(ref libInfo, 0);

调用正常。

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

c#调用C++DLL EntryPointNotFoundException 找不到入口点 的相关文章

  • .exp有什么用,.lib和.dll有什么区别?

    在编译和链接过程中 exp有什么用 lib 和 dll 有什么区别 我知道运行程序时会使用 lib 而链接和 dll将被使用 但 lib 和 dll 之间到底有什么区别呢 lib 文件是否不包含来自 dll 文件的函数的代码 使用两个单独的
  • 由于缺少 ._ufuncs dll,Python scipy 模块导入错误

    我在 python 中从 scipy 集成子模块时遇到了一些麻烦 我有一个 64 位架构 并且根据 python 解释器的第一行 见下文 我似乎还在将 64 位版本的 Python 与 Anaconda 一起使用 下面是问题 我只是编写了最
  • CMake - 安装第三方 dll 依赖项

    我正在使用一个预编译的第三方库 它有多个 DLL 一个用于实际的第三方 还有一些作为其自己的依赖项 我的目录结构如下 MyApp CMakeLists txt Root CMake file src MyCode cpp thirdpart
  • 将 Visual Studio 2008 指向第三方 DLL 的源代码进行调试

    我有一个 VS 2008 C 项目 它使用第三方库 开放场景图 当我开始调试项目时 每次调用此外部库中的函数时 调试器都会跳过它 因为 显然 调试器没有可在其中查找代码的 cpp 文件 它只会跳转到链接到我的项目的头文件 因为这些文件存在并
  • 从 C++ 托管 dll 引发的 C# 异常 - EEFileLoadException * __ptr64

    我从正常的 C 控制台程序中收到此错误 该程序使用作为 C CLI 项目的构建输出生成的 DLL 那里我有一个简单的DumbThing public ref class用静态方法 我想简单地调用该函数 或者至少实例化一个微小的 DumbTh
  • DUMPBIN 实用程序损坏的名称输出

    我正在使用 DUMPBIN 实用程序从 c dll 中获取损坏的名称以在 c 应用程序中使用 我使用 declspec dllexport 公开一个 C 类成员函数 输出的损坏名称结果如下 InitPort CProtocolStack Q
  • 枚举程序集的所有已安装版本(在 GAC 中)

    是否可以使用 C 枚举 GAC 中程序集的所有已安装版本 例如 我有一个名为 My Assembly 的程序集 该程序集可能有各种版本 1 0 0 0 2 3 4 5 0 1 2 4 等 并且可以针对各种平台 x86 x64 任何 CPU
  • 如何在 Inno Setup 中将 VCL 样式应用到基于 DLL 的表单?

    我正在将 Inno Setup Unicode 与我在 Delphi XE2 中编写的一组 DLL 一起使用 DLL 具有在安装向导 安装过程中显示的 VCL 形式 我已经尝试过实施 VCL 样式 https code google com
  • VB6 应用程序调用 .NET DLL OutOfMemory 异常

    我们有一个调用 NET DLL 的 VB6 应用程序 有时 在 VB6 应用程序运行很长时间并多次调用 NET 代码后 NET 方面会抛出 OutOfMemory 异常 即使计算机上有足够的可用内存 VB6 的内存空间也远未达到极限 NET
  • 使用 COM 对象的 Python ctypes 和 DLL

    在 Windows 下 我尝试使用第 3 方 DLL SomeLib dll 使用 Python 2 7 用 C 编程ctypes 对于其某些功能 该库使用另一个 COM DLL SomeCOMlib dll 它本身使用其他DLL LibA
  • 如何判断您的 C# 应用程序正在使用哪个 dll?

    我有一个使用 dll 的应用程序 该 dll 充满了位于位置 x 的 gui 应用程序代码 以前有 1 个按钮 现在有 2 个 当我启动我的应用程序时 我期望看到的是一个带有 2 个按钮的 gui 但是我看到一个带有 1 个按钮的 gui
  • 如何在 C++ 运行时组件内的 Windows Phone 8.1 XAML 应用程序中使用 C++ dll

    我想在我的 C Windows Phone 8 1 XAML Visual Studio 项目中使用 C DLL 为 Arm x86 编译 我创建了一个 C 运行时组件来与我的 C 代码交互 此代码需要预编译的 dll 我将 lib 文件添
  • 未找到入口点

    当我尝试运行链接到 DLL 的应用程序 我有一段时间没有更改代码 因为它工作正常 时 遇到了一个奇怪的错误 这个 DLL 曾经可以工作 但我一直在更改 DLL 的代码并使其编译正常 不幸的是 当尝试运行该应用程序时 GameTest001
  • ws2_32.lib 与 libws2_32.a,有什么区别以及如何将 libws2_32 链接到 NB 项目?

    我使用 NetBeans Windows 和 Cygwin 以及 g 编译器 我正在研究 Windows Sockets 2 我所做的一切都是用 MS 编写的manual http msdn microsoft com en us libr
  • Visual Studio 设置以在运行时删除对 dll 文件的依赖

    到处都有人建议当 Visual Studio 在运行时找不到 DLL 时如何让 Visual Studio 知道 但我想知道在哪里删除该选项 以便 Visual Studio 在运行时不会尝试查找 dll 文件 我昨天也有类似的问题 但没有
  • 如何将参数传递给 DLL 初始化(例如,通过 LoadLibrary 加载时)?

    如何将参数传递给通过 LoadLibrary 加载的 DLL 的初始化函数 有可能吗 也就是说 无需求助于某种导出函数或共享内存 没有直接的方法 最简单的可能是通过环境变量 它们可以在调用之前轻松设置LoadLibray with sete
  • 有没有原生 DLL 导出函数查看器? [复制]

    这个问题在这里已经有答案了 是否有免费的本机 Windows DLL 导出函数查看器 它显示函数名称及其参数列表 dumpbin从 Visual Studio 命令提示符处 dumpbin exports csp dll 输出示例 Micr
  • 根据环境选择目标 32 位或 64 位本机 DLL

    我有一个本机 DLL 有 32 位和 64 位版本 x86 我想创建一个适用于两种体系结构 任何 CPU 的包装器 并根据当前环境 32 位或 64 位 在运行时 加载 DLL 的正确版本 这个过程应该自动发生 这样我的 DLL 的用户就不
  • Visual Studio 2013 设计器尝试加载错误版本的项目 DLL

    我的解决方案中有一个 Visual Studio 项目 它引用同一解决方案中的类库项目 该项目编译并执行得很好 但是 当我尝试在设计器中打开一个表单时 我收到一条消息 无法加载文件或程序集 MyLibName Version 1 0 547
  • AutoCAD 插件开发示例

    我对开发 AutoCAD 插件感兴趣 并试图了解几种不同类型的 AutoCAD 插件文件之间的关系 随 AutoCAD 插件一起提供的托管 DLL ARX 文件 https fileinfo com extension arx附带 Auto

随机推荐

  • 百度地图POI数据获取

    转载自 xff1a https blog csdn net baidu 26646129 article details 80464447 本文主要介绍百度地图POI数据获取 xff1a 从百度地图得到POI数据 xff0c 以json格式
  • 遥感影像降位16位到8位

    From https blog csdn net shenshanxiaozhu article details 53224554 常用卫星影像基本上都是16位影像 xff0c 在某些应用场景下需要将16位影像降到8位影像 xff0c 这样
  • ipython notebook 如何打开.ipynb文件?

    三种方法查看 ipynb 文件 xff1a 1 xff0c GitHub 中可以直接打开 ipynb 文件 2 xff0c 可以把 ipynb 文件对应的下载链接复制到 https nbviewer jupyter org 中查看 3 xf
  • 解析IOS二进制格式的bplist

    关于二进制格式的plist xff0c 搜到一篇博客 详解Binary Plist格式 xff0c 介绍的很详细 xff0c 但是结合github上关于一份解析bplist的代码通过结果实际来看 xff0c 博客中解析对象表的说明出现了问题
  • 'gbk' codec can't encode character解决方法

    Friom https www cnblogs com themost p 6603409 html 使用Python写文件的时候 xff0c 或者将网络数据流写入到本地文件的时候 xff0c 大部分情况下会遇到 xff1a Unicode
  • Python中str与bytes互相转换

    快速转换方式 str to bytes my str 61 34 hello world 34 my str as bytes 61 str encode my str type my str as bytes ensure it is b
  • Python关于%matplotlib inline

    在github代码中经常会看到这样的代码 xff1a import numpy import matplotlib pyplot as plt from pandas import read csv import math from ker
  • Jupyter Notebook介绍、安装及使用教程

    目录 一 什么是Jupyter Notebook xff1f 1 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序 其可被应用于全过程计算 xff1a 开发 文档编写 运行代码和展示结果 Jupyter Notebo
  • Python读取XML

    From http www cnblogs com fnng p 3581433 html 关于python读取xml文章很多 xff0c 但大多文章都是贴一个xml文件 xff0c 然后再贴个处理文件的代码 这样并不利于初学者的学习 xf
  • matlab解决中文显示乱码

    matlab很多函数在读取中文后显示乱码 xff0c 为了显示中文 xff0c 应改为UTF 8方式或其他支持中文的编码方式 xff0c 这在Matlab中的操作为 xff1a slCharacterEncoding 39 UTF 8 39
  • Matlab写TIFF格式文件(多于3波段)

    1 起因 通常情况下 xff0c 使用MATLAB做图像处理后 xff0c 使用下面的命令就可以保存处理结果为图片 imwrite im 39 im bmp 39 而如果需要保存的图像为single或者double类型 xff0c 或保存的
  • Python包设置清华源(pip, anaconda等)

    pip设置清华源 pypi 镜像每 5 分钟同步一次 临时使用 pip install i https pypi tuna tsinghua edu cn simple some package 注意 xff0c simple 不能少 是
  • shapefile字符集编码设置

    http zhihu esrichina com cn article 3 在 ArcGIS Desktop ArcMap ArcCatalog and ArcToolbox 中 xff0c 有编码页转换功能 xff08 CODE PAGE
  • pyhton 遍历文件夹,筛选文件

    如果我们需要遍历一个文件夹下的所有文件 xff0c 子文件夹里的内容 xff0c 用Python来实现 xff0c 很方便 xff0c 主要使用os walk folder xff0c 其中folder 是文件夹的路径 xff1a 先看代码
  • VINS 详解

    VINS是视觉与IMU融合SLAM的代表 xff0c 其实现了一个较为完整的SLAM工作 xff0c 开源地址为 xff1a GitHub HKUST Aerial Robotics VINS Mono A Robust and Versa
  • Python OS 文件/目录方法

    From http www runoob com python os file methods html os 模块提供了非常丰富的方法用来处理文件和目录 常用的方法如下表所示 xff1a 序号方法及描述1 os access path m
  • Python 异常处理

    From http www runoob com python python exceptions html python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误 你可以使用该功能来调试python程序 异常处
  • deeplabV3+源码分解学习

    From horsetif https www jianshu com p d0cc35b3f100 github上deeplabV3 43 的源码是基于tensorflow xff08 slim xff09 简化的代码 xff0c 是一款
  • 常用颜色名称与RGB数值对照表

    From http xh 5156edu com page z1015m9220j18754 html 颜色名 中文名称 Hex RGB 十进制 Decimal LightPink 浅粉红 FFB6C1 255 182 193 Pink 粉
  • c#调用C++DLL EntryPointNotFoundException 找不到入口点

    From http www voidcn com article p kqogmify rh html c 程序调用C 43 43 的dll的时候 xff0c 经常出现这样的问题 xff1a System EntryPointNotFoun