C++ visualc&x2B+;如何从其他公司加载.DLL

C++ visualc&x2B+;如何从其他公司加载.DLL,c++,visual-studio-2010,dllimport,rundll32,C++,Visual Studio 2010,Dllimport,Rundll32,我需要从另一个公司代码加载一个.dll文件,以便调用它的函数。但是,当我不知道如何设置它的变量时,如何加载它呢?dll文件是“Interop.OphirLMMeasurementLib.dll”,这是从数据表中剪切出来的 “OphirLMMeasurement COM对象遵循标准COM实践 从其方法返回HRESULT的步骤。HRESULT可以传递给 GetErrorFromCode以获取描述性字符串或标准COM 可以调用GetErrorInfo函数(有关详细信息,请参阅文档) 一些客户端环境(如

我需要从另一个公司代码加载一个.dll文件,以便调用它的函数。但是,当我不知道如何设置它的变量时,如何加载它呢?dll文件是“Interop.OphirLMMeasurementLib.dll”,这是从数据表中剪切出来的

“OphirLMMeasurement COM对象遵循标准COM实践 从其方法返回HRESULT的步骤。HRESULT可以传递给 GetErrorFromCode以获取描述性字符串或标准COM 可以调用GetErrorInfo函数(有关详细信息,请参阅文档) 一些客户端环境(如VB6和所有.NET) 语言)不从方法调用返回此HRESULT;而是 当方法返回失败HRESULT时,它们抛出异常 异常通常包含错误号和 描述性字符串

----------


3.3 Methods and Events

3.3.1 Device Communications
接近

克洛索尔

GetKnown无线设备

开放式电子设备

开放式无线设备

重置所有设备

复位装置

ScanUSB

扫描无线


那么如何从这个.dll文件调用ScanUSB的函数呢?

重要的一个词是COM。组件对象模型的缩写,这是Microsoft对对象调用方法的语言中立机制


在这种情况下,
ScanUSB
是一种针对
OphirLMMeasurement
类型对象的方法。我不知道如何获得这样的对象-
CreateInstance
是一种可能的方法。我怀疑在
ScanUSB
之前,
OpenUSBDevice
将是必要的。但我们还需要知道参数,以及您忽略了文档的那些部分。

他们没有提供一个头和导入库,DLL是后者吗?后者不是严格需要的,但看起来可能会提供至少前者。您可能想检查DLL进来的包。互操作库是针对.NET程序的。在本地C++中,您必须使用。导入类型库的输入指令通常嵌入在DLL中。在C++中编写COM客户端代码有一种学习曲线,最好使用.NET语言。它们没有提供任何头和导入库方法,但它们确实提供了VB、CpHARP、MATLAB和LabVIEW的可用演示。给定任务只使用C++和其他语言。它们提供的唯一文档是这个。而且我必须使用C++语言。