我有一个.lib
库,我试图在C#应用程序中使用它。我为它制作了一个.dll
包装器,但我有两个问题:
1)如何导入c ++类型,例如msp_DEVHANDLE
来调用我的函数?
2)调用打开/关闭功能会导致错误,如
" mvlib.mv.Open由于其保护级别而无法使用"
。但它们是公开的,其他3个功能不会导致此错误。我做错了什么?
我的包装dll:
mvlib.h
#pragma once
using namespace System;
namespace mvlib {
public ref class mv
{
public:
int GetNumberOfDevices();
msp_ERROR Startup();
msp_ERROR Cleanup();
msp_DEVHANDLE Open(int n);
msp_ERROR Close(msp_DEVHANDLE n);
};
}
mvlib.cpp
#include "stdafx.h"
#include "mvlib.h"
using namespace mvlib;
int mv::GetNumberOfDevices()
{
return msp_GetNumberOfDevices();
}
msp_ERROR mv::Startup()
{
return msp_Startup();
}
msp_ERROR mv::Cleanup()
{
return msp_Cleanup();
}
msp_DEVHANDLE mv::Open(int n)
{
return msp_Open(n);
}
msp_ERROR mv::Close(msp_DEVHANDLE n)
{
return msp_Close(n);
}