在C#中使用C CLR :: Class Library

时间:2012-11-28 16:56:45

标签: c# c++ dll c++-cli clr

我试图让一些C ++代码在C#下工作。我一直在尝试在线跟踪教程,没有任何运气编译或执行代码。

我编写了一个基本的C ++类,它编译成.dll和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

编辑:删除了细节,添加了错误的屏幕截图。

1 个答案:

答案 0 :(得分:0)

您是否尝试添加“使用CTrans”;使用块?

到Program.cs的顶部

检查以确保使用相同的体系结构(x86 / x64)编译程序集,并且错误列表中没有其他相关警告。