我正在研究一个需要加载Nvidia的API NvApi.lib的VB.Net项目。不过Nvidia的网站上,它说:.net中的静态链接是不可能的?你可以用C++/CLI编写一个包装器吗?
“ NVAPI不能动态连接到应用程序,您必须创建一个静态链接库中,然后调用NvAPI_Initialize(),它加载动态nvapi.dll”
我的理解是.Net不支持静态链接是否有一种方法来包装NvApi.lib文件,以便我可以从Visual Basic调用它? P.S.我见过一个叫NvApi.net项目here这使我相信这是可能的,但该项目似乎不完整的,在2009年被放弃,我需要的功能被添加到API在2010年
编辑:
我能够得到它的工作。我在我的解决方案中添加了一个新的visual C++ CLR类项目。在将nvapi.lib文件作为依赖关系链接并将nvapi.h文件添加到项目后,我可以为我需要的方法编写一个小包装。以下是我使用的代码。它只是让我打开和关闭3D立体声。
#include "nvapi.h"
public ref class NvApiWrapper
{
public:
static bool NvApiWrapper_Initialize(){
if (NvAPI_Initialize() == 0){
return true;
} else {
return false;
}
}
static bool NvApiWrapper_Stereo_Enable(){
if (NvAPI_Stereo_Enable() == 0){
return true;
} else {
return false;
}
}
static bool NvApiWrapper_Stereo_Disable(){
if (NvAPI_Stereo_Disable() == 0){
return true;
} else {
return false;
}
}
};