我正在尝试使用.net获取Windows设备的WiFi信号强度。 我的设备不支持Windows零配置,使事情变得有点棘手。我的应用程序已经在使用Summit sdk,我试图用它来获得信号强度。现在使用峰值sdk对象库文件我有一个dll(C ++)引用库文件(.lib)。这个c ++ unmanaged dll(summit.dll)我使用p调用在我的.net代码中调用。
在我的summit.h文件中,我定义如下:
#ifdef SUMMIT_EXPORTS
#define SUMMIT_API extern "C" __declspec(dllexport)
#else
#define SUMMIT_API __declspec(dllimport)
#endif
SUMMIT_API int SignalStrength(void);
我在我的summit.cpp类文件中添加了以下代码:
SUMMIT_API int SignalStrength(void)
{
CF10G_STATUS ss;
SDCERR sdcer;
sdcer=GetCurrentStatus(&ss);
return ss.rssi;
}
在上面的代码片段中,GetCurrentStatus是由sdc_sdk.h文件中声明的峰值提供的函数
SDCERR GetCurrentStatus(CF10G_STATUS * status);
在我的.net类文件中,我使用了pinvoke,如下所示:
[DllImport("summit.dll")]
public static extern int SignalStrength();
并存储信号强度值如下:
int result=SignalStrength();
但它并没有给我任何价值。任何人都可以帮我理解我错在哪里吗?有什么我想念的吗?