Я пытаюсь получить код 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
редактировать: убрать тонкости, добавить скриншот ошибки.
Вы пытались добавить «использование CTrans;» наверх Program.cs, используя блок?
Убедитесь, что сборки скомпилированы с одинаковой архитектурой (x86 / x64) и что в списке ошибок нет других связанных предупреждений.
Других решений пока нет …