c# - 如何在 C# 项目中包含 C# .dll 包装器?
问题描述
所以我有一个 C# 项目,我正在尝试通过 Silicon Labs CP2112 USB 到 i2c 桥向它添加 USB 功能。它们以 2 个 .dll 文件的形式提供驱动程序:SLABHIDtoSMBus.dll 和 SLABHIDDevice.dll(显然在运行时需要)。我还发现了一个 SLABCP2112.cs 文件,它应该允许在 C# 中使用 dll。
我已成功将 SLABCP2112.cs 添加到我的项目中,并且 Intellisense 可以识别这些功能。问题是当我运行程序时,它总是抛出一个异常,即找不到 SLABHIDtoSMBUS.dll(System.DllNotFoundException)。我尝试将 dll 移动到不同的位置,例如主项目文件夹、项目中的“USB”文件夹,其中我包含了 SLABCP2112.cs、Windows SysWOW64 文件夹,最后是 c# 项目的“bin”文件夹。
将它放在 bin 文件夹中仍然会引发异常,但会将错误更改为错误的图像错误或类似的东西。为了更好地衡量,我尝试将 .dll 作为引用添加到项目中,但这会导致错误“无效或不受支持的类型”。
我假设问题仍然是编译器不知道在哪里查找 dll 文件,那么我应该把它们放在哪里?或者如果没有,我该如何让它工作?
解决方案
推荐阅读
- c - getline 和 fgets 的区别
- javascript - 添加一个类到
- python - 访问熊猫中行和列的特定值
- c - 为什么 fgets() 函数没有第二次提示用户输入?
- keyboard - 带有ReplyKeboardMarkup的Telegram bot中的SendMessage在更新后停止工作
- css - PrimeNG - 在任何设备的 PTable 上保持水平布局
- arrays - 来自返回数组最大值的函数的C分段错误
- python - 在 mac 10.15 上安装 pyarrow python 导致命令 clang 失败,退出状态代码为 1
- python - 如何从 csv 中删除空值?Python + 熊猫
- c# - 这些 for 循环可以在 LINQ 中重构吗?