在c#应用程序中使用.lib:2个问题

时间:2014-08-14 21:57:01

标签: c# c++-cli

我有一个.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);
}

0 个答案:

没有答案