2

C# で動作する C++ コードを取得しようとしています。私は、コードをコンパイルまたは実行する運がなくても、オンラインでチュートリアルに従おうとしています。

.dll にコンパイルされる基本的な C++ クラスと、C# コンソール アプリケーションを作成しました。- C++ dll のプラットフォーム ツールセットを v100 に変更しました - C# アプリケーションに dll への参照を追加しました

C++ 静的関数ではなく、C++ クラスを使用しようとしていることに注意してください...コードに!

// CTrans.h
#pragma once

#include "windows.h"

using namespace System;

namespace CTrans {

    public ref class CTransClass
    {
    public:
    System::String^ helloWorld();
    };
}

// CTrans.cpp
// This is the main DLL file.
#include "stdafx.h"
#include "CTrans.h"

String^ CTrans::CTransClass::helloWorld()
{
    return gcnew System::String("Hello World!");
}

// Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CTWrapper
{
    class Program
    {
        static void Main(string[] args)
        {
            unsafe
            {
                CTrans.CTransClass trans = new CTrans.CTransClass();
                String tmp = trans.helloWorld();
            }
        }
    }
}

エラー: http://sumarlidason.com/Capture.PNG

編集: 細部を削除し、エラーのスクリーンショットを追加します。

4

1 に答える 1

0

「CTransを使用して」を追加しようとしましたか?ブロックを使用して Program.cs の先頭に?

アセンブリが同じアーキテクチャ (x86/x64) でコンパイルされていること、およびエラー一覧に関連する警告が他にないことを確認してください。

于 2012-11-28T17:41:37.953 に答える