我希望不要重复已经问过的东西。我四处寻找,但没有找到类似的东西。
我开发了一个本机 sdk,它公开了一些类和接口。
现在,我需要实现一个使用此 SDK 的混合模式 DLL。
但以下代码无法编译:
包装类.h
#pragma once
#include <vcclr.h>
#using <mscorlib.dll>
class WrapperClass{
public:
WrapperClass();
private:
gcroot<Client^> m_ManagedObj;
};
NativeClass.h
#pragma once
#include "stdafx.h"
#include "NativeSDK.h"
#include "WrapperClass.h"
class Native : public INativeSDK {
public:
// ... code ...
private:
WrapperClass ManagedObj;
}
设置如下:
Project Setting : No Support for CLR
NativeClass.cpp : No Support for CLR
WrapperClass.cpp : /clr
编译器错误是:
..\include\vcclr.h(16): fatal error C1190: The managed code require an option '/clr'
因为 NativeClass 不是用 /clr 编译的。
我想我需要使用#pragma 托管/非托管指令,但我不知道如何。
有人可以给我一些建议吗?