簡體   English   中英

如何在C#中從C ++ / CLI dll訪問類型?

[英]How do I access a type from a C++/CLI dll in C#?

我使用以下代碼創建了C ++ / CLI dll:

#pragma once

#include "msg.h" //msg_t is a struct defined here

using namespace System;

namespace myCLRDll 
{

    typedef msg_t my_msg_t;

    public ref class Class1
    {
    };
}

構建庫,添加對我的C#應用​​程序的引用,並using myCLRDll; 指令,但是當我使用my_msg_t出現未定義的標識符錯誤:

找不到類型或名稱空間名稱“ my_msg_t”(您是否缺少using指令或程序集引用?)

為什么這種類型不可見? 我需要進行任何類型的“類型導出”嗎? 有什么解決方法嗎?

C#沒有看到typedef的原因有兩個:

  1. C#只能從您的C ++ / CLI庫中查看托管類型。 沒有機制允許C#直接訪問非托管類型。

  2. C ++ / CLI庫中的'typedef'語句永遠無法用於其他.NET應用程序。 它僅在范圍內的C ++ / CLI庫中可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM