Подключение дллки, созданной с помощью mfc
Цитата:
testdll2.obj : error LNK2028: unresolved token (0A000015) "int __clrcall TempoSetModel(char const *)" (?TempoSetModel@@$$FYMHPBD@Z) referenced in function "private: void __clrcall testdll2::Form1::button4_Click(class System::Object ^,class System::EventArgs ^)" (?button4_Click@Form1@testdll2@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
Цитата:
testdll2.obj : error LNK2019: unresolved external symbol "int __clrcall TempoSetModel(char const *)" (?TempoSetModel@@$$FYMHPBD@Z) referenced in function "private: void __clrcall testdll2::Form1::button4_Click(class System::Object ^,class System::EventArgs ^)" (?button4_Click@Form1@testdll2@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
Цитата: Karrde
можно ли в при работе с .Net Framework подключать длл-ки, созданный в mfc?
А как вы их подключаете?
Цитата:
#include "Tempo.h"
#pragma comment(lib, "Tempo.lib")
#pragma comment(lib, "Tempo.lib")
и в папку с программой копирую соответствующие .lib, .dll и .h
Цитата: Karrde
и в папку с программой копирую соответствующие .lib, .dll и .h
Это все очень здорово конечно, но что за .NET язык, каков прототип функций в DLL и как вы их написали на вашем .NET языке. Об этом нужно догадываться?
Ну и просто в длл их объявляю и реализовываю.
Цитата:
TEMPO_API int TempoCreateModel(LPCSTR szFileNameWav, LPCSTR szFileNameModel);
Не совсем понял, что ещё нужно указать))
А почему __clrcall? Макра TEMPO_API разворачивается как?
Простите. но я не совсем понял вопросы((
В сообщении об ошибке копоновщик указывает на отсутствие функции соглашением о вызове __clrcall. Оно применяется к управляемым методам. В свою очередь, управляемые методы могут быть только в управляемых типах данных, глобальные функции С++ управляемыми быть, какбэ, не могут. Вопрос: откуда компилятор взял, что для TempoSetModel требуется управляемый вызов? Должно быть что-нибудь типа __cdecl или __stdcall. С другой стороны, нативная либа с __clrcall просто не скомпилируется.
Так-то unresolved external symbol может означать три вещи: либо не пристыкован lib-файл, либо не совпадают прототипы функций в h-файлах, либо библиотека просто не экспортирует требуемую функцию.