我正在开发一个需要加载 Nvidia 的 API NvApi.lib 的 VB.Net 项目。但是在 Nvidia 网站上它说:
“NvAPI 不能动态链接到应用程序。您必须创建到库的静态链接,然后调用 NvAPI_Initialize(),它会动态加载 nvapi.dll。”
我的理解是.Net 不支持静态链接有没有办法包装 NvApi.lib 文件,以便我可以从 Visual Basic 调用它?PS 我在这里看到了一个名为 NvApi.net 的项目,这让我相信这是可能的,但该项目似乎不完整,并于 2009 年被放弃,我需要的功能于 2010 年添加到 API 中。
编辑:
我能够让它工作。我在我的解决方案中添加了一个新的 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;
}
}
};