0

どうやら私の .NET プラットフォームと C# と C++/CLI の通信方法に関する知識は非常に低いようです。おそらく、MSVS のライフハックや知っておくべきことを知らないだけなのかもしれません。

C# から C++/CLI コードを呼び出したい (ネイティブ C++ で書かれたアルゴリズムをラップしたい)。C++/CLI がコンパイルされたら、C++/CLI プロジェクトへの参照を C# コンソール アプリ プロジェクトに追加します。しかし、それはまだ見えません。私はこのばかげた問題を半日掘り下げてきました。助けてください!

そして、私の理解におけるそのようなギャップをカバーするための優れた理論資料を知っていれば、心から感謝します. 私は Hogenson を読み、仕事の接着剤として C++/CLI を使用しましたが、リンカーがどのように機能するかを理解するのに常に問題がありました。

それがソリューション構造です - 1

Test.hxx:

#pragma once
#pragma managed

namespace Test
{
    class Test
    {
        public:
            static int Run();
    };

}

Test.cxx:

#pragma unmanaged
#include <iostream>

#pragma managed
#using <System.dll>
#include "test.hxx"

namespace Test
{
    int Test::Run() { return 42; }
}

Program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Test;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main( string[] args )
    {
      Test.Run();
    }
  }
}

エラー:

Error   1   The type or namespace name 'Run' does not exist in the namespace 'Test' (are you missing an assembly reference?)    c:\users\denis\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 13  12  ConsoleApplication1

助けてくれてありがとう!

4

1 に答える 1