Используйте C CLR :: Библиотека классов в C #

Я пытаюсь получить код C ++, работающий под C #. Я пытался следовать учебным пособиям онлайн повсюду без какой-либо удачи, компилируя или выполняя код.

Я написал базовый класс C ++, который компилируется в .dll, и консольное приложение C #.
— Я изменил набор инструментов платформы на v100 на C ++ DLL
— Я добавил ссылку на DLL в моем приложении C #

Заметьте, я пытаюсь использовать класс 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

Решение

Вы пытались добавить «использование CTrans;» наверх Program.cs, используя блок?

Убедитесь, что сборки скомпилированы с одинаковой архитектурой (x86 / x64) и что в списке ошибок нет других связанных предупреждений.

0

Другие решения

Других решений пока нет …