[英]Create a mixed mode C++/CLI DLL
我希望不要重復已經問過的問題。我四處搜尋,但沒有找到類似的東西。
我已經開發了本機sdk,其中公開了一些類和接口。
現在,我需要實現一個使用此SDK的混合模式DLL。
但是以下代碼無法編譯:
包裝類
#pragma once
#include <vcclr.h>
#using <mscorlib.dll>
class WrapperClass{
public:
WrapperClass();
private:
gcroot<Client^> m_ManagedObj;
};
本機類
#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 mananaged / unmanaged指令,但是我不知道怎么做。
有人可以給我一些建議嗎?
您中的許多人都需要添加另一層間接WrapperClass
,因此您的非托管源文件看不到WrapperClass
類的“內容”。
//WrapperClassWrapper.h
class WrapperClass;
class WrapperClassWrapper
{
public:
WrapperClassWrapper();
~WrapperClassWrapper();
//etc.
private:
WrapperClass *m_pWrapper;
}
然后在用/ clr編譯的WrapperClassWrapper.cpp中實現它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.