Статус:
Offline
Реєстрація: 04.03.2009
Повідом.: 122
Реєстрація: 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 в линкере включена
Пытаюсь программировать МИДИ подсистему из библиотеки 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 в линкере включена