纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 5323|回复: 2

C#无法加载"Ginkgo_Driver.dll"怎么办

[复制链接]
发表于 2020-9-21 16:36:33 | 显示全部楼层 |阅读模式
放置到了对应目录底下,但仍旧报错:
无法加载 DLL“Ginkgo_Driver.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
使用的是
USB-SPI适配器读写控制的C#样例程序

请问这个该怎么解决?
回复

使用道具 举报

发表于 2022-3-3 09:40:45 | 显示全部楼层
你好,请问这个问题解决了吗?我也遇到了,感谢!
回复 支持 反对

使用道具 举报

发表于 2023-10-18 15:35:26 | 显示全部楼层
A. 在调用非托管的DLL文件时,.net是无法引用的,这个时候我们就需要用到DllImport来引用(using System.Runtime.InteropServices)dll文件。

这个时候DllImport引用dll的路径是这样需找的,
A1: 首先从当前应用程序bin目录,
A2: 然后system32文件夹下面寻找,接着是环境变量。
A3: 一般是在放在bin目录下面,这个时候有个问题,就是dll重名怎么办,我是这样解决的:在bin目录下面新建文件夹,不同的dll放入不同的文件夹中。

   然后DllImport引用时使用虚拟路径:

/// <summary>
         /// 初始化播放器SDK资源。(初始化解码SDK资源)
         /// 对整个解码SDK系统的初始化,加载所需的动态库和内存预分配等操作。
         /// IMOS_XP_PLAYER_EXPORT ULONG STDCALL IMOS_XP_Init()
         /// @注解:
         /// 1、该接口函数支持Windows和Linux。
         /// </summary>
         /// <returns>
         /// 返回如下错误码:
         /// ERR_COMMON_SUCCEED 成功
         /// ERR_XP_FAIL_TO_INIT_XP 初始化播放器资源失败
         /// </returns>
         [DllImport(@".\H3c_Imos_xp_sdk_win\redist\xp_player.dll", EntryPoint = "IMOS_XP_Init", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
         public static extern UInt32 IMOS_XP_Init();

A4: 也可以自己指定路径,但在用DllImport时要写清楚路径
回复 支持 反对

使用道具 举报

发表于 2023-10-18 15:39:58 | 显示全部楼层
MarkZ 发表于 2023-10-18 15:35
A. 在调用非托管的DLL文件时,.net是无法引用的,这个时候我们就需要用到DllImport来引用(using System.Run ...

在GinkgoOne的目录下的linusb.dll也copy 过去
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-21 23:54 , Processed in 1.853937 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表