我正在尝试编译所示的示例项目here http://www.ftdichip.com/Support/SoftwareExamples/FTDIChip-ID.htm对于 C#。它必须转换为 VS2010,但效果很好。它会构建、运行,但当它尝试访问 DLL 函数时就会终止。
我做了一系列images http://andriano.homeserver.com/temp/dllproblem/显示我的步骤。如您所见,我设计的设备已连接并正确配置,但我真的不认为这与该问题有任何关系。在 Form1.cs 文件中,以下注释解释了如何使用 DLL:
/*
PLEASE NOTE
You must add a reference to the FTChipIDNet.dll in order to use this sample
To do this:
1. Click on Solution explorer tab.
2. Right click the References tree.
3. Choose Add Reference option.
4. Browse to the FTChipIDNet.dll (as a personal preference I place this in my bin directory)
5. Click OK
*/
我按照上面显示的说明进行操作,修复了对命名空间 FTChiid 的未定义引用。我还手动检查了对象浏览器以确保 GetNumDevices 函数存在并且确实存在。
单击该按钮会产生此错误:
DLLNotFoundException 未处理:
无法加载 DLL“FTChipID.dll”:找不到指定的模块。 (HRESULT 异常:0x8007007E)
在这行代码中:
FTChipID.ChipID.GetNumDevices(ref numDevices);
现在,您可能会想“错误表明它需要 FTchipID.dll,而不是 FTchipIDNet.dll。”我也在想同样的事情。我有 FTChiid.dll 以及 .lib 和 .h 文件,但我不知道如何使用它们,也不知道它们需要在哪里才能让该程序找到它们。我尝试添加对 FTchipID.dll 的引用,但 VS2010 说
无法添加对 ...\FTChipID.dll 的引用。请确保该文件可访问,并且它是有效的程序集或 COM 组件。
我也不知道这意味着什么。有任何想法吗?提前致谢。
FTChipIDNet.dll 是 FTChipID.dll 的包装器,因此您需要添加对解决方案的引用(如上面所做的那样),然后将 FTChipID.dll 复制到 FTChipIDNet.dll 所在的 bin 文件夹中。
这两个 dll 应位于解决方案的 bin 文件夹中才能运行,而不应位于 windows\system32 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)