Я действительно не верю, что этот вопрос никогда не задавался раньше, но я действительно старался искать без успеха, если у вас есть ссылка на уже подобранный ответ, пожалуйста, поделитесь им.Портирование с C++ на C++/CLI
Я портирую программу C++/Win32 на C++/CLI, и, конечно же, я пытаюсь сделать меньшее количество модификаций возможным для кода, чтобы ускорить этап повторного тестирования.
У меня возникли некоторые проблемы из-за глобальные функции, имеющие объекты в качестве параметров, здесь короткий пример:
заголовочного файл класса
namespace MyNamespace {
public ref class MyClass {
public:
void test();
};
}
Class файл касты
using MyNamespace;
void myFunction(MyClass ^obj);
void MyClass::test() {
myFunction(this);
}
И вот возникает проблема: если я не буду оставлять myFunction из MyNamspace, он не может использовать MyClass в качестве типа параметра. Если я включу myFunction в MyNamespace, каждый файл cpp будет скомпилирован правильно, но я получу ошибку компоновщика «LNK2028 неразрешенный токен».
Идея состоит в том, чтобы определить новый класс и включить myFunction в качестве общедоступного статического метода, но для этого будет долгая работа, потому что myFunction в реальном проекте не одинок ... Любая другая идея?
Вы определяете (реализуете) 'myFunction' где-нибудь? Если это «токен» (символ, на мой взгляд, действительно есть сообщение об ошибке), который не разрешен (пожалуйста, укажите сообщение об ошибке * complete * без редактирования). –
тег «интерфейс командной строки» глупо CLI в «C++/CLI» означает «Common Language Infrastructure» – PeterT
Ну, вы просто написали это объявление прототипа, чтобы подавить сообщение об ошибке компилятора, в котором говорилось, что вы делаете это неправильно. Не помешало вам сделать это неправильно, теперь линкер обнаруживает, что на самом деле у вас нет этой функции.Очень важно, чтобы C++/CLI выполнял ** не ** напрямую переводить собственный C++ на управляемый код, но только записывал классы-оболочки для * открытого * интерфейса в вашу библиотеку. Оставьте всю внутреннюю сантехнику как есть. И настройте эти обертки, чтобы они были удобны в использовании с системой управляемого типа. http://stackoverflow.com/a/2691448/17034. –