У меня есть проект, где я должен подключиться к библиотеке, основанной на C, и я не смог получить доступ к функциям из C # с помощью DLLImport.Я должен использовать проект, который является C ++ / CLI, основанным на поверхности этих функций для использования.(подробнее к этой истории, но не важно).
Я изучал C ++ более 10 лет назад, так что извините, если это кажется наивным.
В последний раз я купил несколько книг по реализации C ++ / CLI.год, и иметь некоторое представление о том, что происходит - я только копался в этих книгах для этого проекта.(Я был программистом в течение долгого времени).
Я подумал, что лучше начать небольшой пример проекта, чтобы ознакомиться с тем, что будет в нем участвовать, убедиться, что я смогу скомпилировать и т. Д. Я началпроект с использованием Visual Studio 2008 SP1;Visual C ++> CLR> Библиотека классов.В проекте - хочу использовать как управляемые, так и нативные из DLL.Так что используется ключ / clr.
Я использовал другие имена в реальном коде;но это очень и очень близко.(на данный момент нет других файлов или функций)
Заголовок:
//myWrapper.h
#pragma once
using namespace System;
namespace myWrapper {
public ref class myWrappedService {
myWrappedService();
bool Connected(String ^user,String ^password,String ^domain);
}
};
И реализация имеет это.
//myWrapper.cpp
//This is the main DLL file
#include "stdafx.h"
#include "myWrapper.h"
using namespace System;
public ref class myWrappedService
{
public:
myWrappedService() {}
bool Connected(String ^user,String ^password,String ^domain)
{
//just a simple result to start - no real functionality
bool result = false;
return result;
}
};
Это код -который компилируется, но получает ошибки компоновщика.
ошибка LNK2020: неразрешенный токен (06000002) myWrapper.myWrappedService :: Connected
фатальная ошибка LNK1120: 1 неразрешенная внешняя.
Это выглядело чертовски легко - и я мог бы подумать над многим из подхода C #.Я ожидаю, что это будет что-то простое - но я не знаком с тем, что я должен видеть в подходе CLI.(Я потратил несколько часов на поиски ответов и, наконец, чувствую, что мне нужно опубликовать вопрос, на который можно получить ответ).