我正在使用setupapi.dll来确定USB设备连接。它在64位版本的Windows(XP,Vista)中无法正常工作。我怀疑声明不太正确,但我不确定如何验证。 MS似乎没有提供dllimport信息,但它们列出了所有函数定义。是否有可用于在函数头和dllimport声明之间进行转换的资源?
我使用过pinvoke.net,但看起来它在提供的定义中没有考虑64位。
答案 0 :(得分:1)
您正在寻找的工具称为C ++ / CLI。它是内置来处理这些标头并生成互操作代码 - 没有用P / Invoke来解决问题。
在C ++ / CLI中编写一个轻量级的包装程序集,然后在C#代码中使用它。
(很难提供更具体的答案,因为你没有真正指定 它无法正常工作......)
答案 1 :(得分:1)
结帐pinvoke.net。它有一大堆已经转换为DllImport定义的Win32 API(包括setupapi.dll)。