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 的顶部 using 块?

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

于 2012-11-28T17:41:37.953 回答