Ваша реклама могла б бути тут!
1 млн переглядів на місяць!
Google Page Rank: 5

Visual C+ ошибка Linker - a

🔴 05:17 Повітряна тривога в Харків.обл.
Статус: Offline
Реєстрація: 04.03.2009
Повідом.: 122
  • 🔴 05:17 Повітряна тривога в Харків.обл.
  • #1
Visual C++ ошибка Linker - a

Пытаюсь программировать МИДИ подсистему из библиотеки MMSYSTEM.

Вообщем, если кто не работал с MIDI - это ничего, ведь там проблемма возникла со стандартной API функцией.

функция midiInOpen(
LPHMIDIIN lphMidiIn,
UINT_PTR uDeviceID,
DWORD_PTR dwCallback,
DWORD_PTR dwCallbackInstance,
DWORD dwFlags)

запрашивает handle Миди порта, номер порта, функцию CALLBACK, которой она будет возвращать уведомления о наступлении события, какое-то информационное слово, которое будет передаваться в эту ф-цию и которое не используется подсистемой, и флаги (в моем случае CALLBACK_FUNCTION)

я объявляю функцию CALLBACK, которой будут передаваться эти самые уведомления.

Первое, что получаю в ответ (CALLBACK - это просто _stdcall) - компилятор не может использовать _stdcall и советует __clrcall.

Я переписываю так как советывает компилятор:

static void __clrcall MidiInCallback(HMIDIIN, UINT msg, DWORD Instance, DWORD Param1, DWORD Param2);

указываю его в функции midiInOpen:

midiInOpen(handleIn, index, (DWORD)MidiInCallback, dword , CALLBACK_NULL)

и получаю:

error LNK2020: unresolved token (06000003) MidiIO::OpenMidiIn
1>MidiIO.obj : error LNK2020: unresolved token (06000003) MidiIO::OpenMidiIn
1>D:\Midi Script Worker\MSW\Debug\MSW.exe : fatal error LNK1120: 2 unresolved externals

Проэкт Windows Forms.

В чем там дело??

"""""""""""midiInOpen(handleIn, index, (DWORD)MidiInCallback, dword , CALLBACK_NULL)""""""

ТАМ я перепутал в сообщении - там последний параметр CALLBACK_FUNCTION

библиотека winmm.lib в линкере включена
 
  • 🔴 05:17 Повітряна тривога в Харків.обл.
  • #2
убери CLR из настроек, какой нафик clrcall у unmanaged dllи?
 
  • 🔴 05:17 Повітряна тривога в Харків.обл.
  • #3
Полностью убрать CLR не выходит - начинается фикня. Я поставил вместо /clr:pure просто /clr. С этим разобрался. Теперь компилятор не матерится, но линкер опять пишет:

error LNK2020: unresolved token (06000003) MidiIO::OpenMidiIn
error LNK2020: unresolved token (06000003) MidiIO::OpenMidiIn
fatal error LNK1120: 2 unresolved externals

Закрываю тему со своими глупыми вопросами...

Создам просто unmanaged класс и managed.....

Я думаю проблем не будет.
 
Назад
Зверху Знизу