Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Непонятная ошибка |
Автор: Syltan 22.2.2010, 17:28 | ||
-------------------------------------------------------------------------------- Пробую написать подключаемый модуль к файловому менеджеру ФАР. Программа, не хочет компилится, затсряла на непонятной ошибке Плагин должен просто выдвигать/задвигать “язык” сидюка. Но код не компилится почему-то.
Выдаёт ошибку: cd.obj : error LNK2019: unresolved external symbol __imp__mciSendStringW@16 referenced in function _OpenPlugin@8 Я так и не понял, не хаватет библиотеки winmm.dll ??? Я её скачал, как её подключить в студию, чтоб заработал этот проект, если конечено проблемма в том что нету этой библиотеки. Я пробовал её кидать в папку с проектом, во все подпапки, всё равно выскакивает эта ошибка. |
Автор: artsb 22.2.2010, 18:28 |
mciSendString появилась только в Win2000. Под какой ОС вы запускаете? |
Автор: Syltan 22.2.2010, 19:07 | ||
Программа вроде скомпилилась после. того как я прописалв самом начале строку:
У меня подключаема библиотека к фару работает, только не запускается на компах там где не стоитстудия 2008. Как исправить ошибку? Ещё проблемма небольшая. Чтоб не прописывать эту строку, можно настроить в студии, но там я не нашёл в меню input->Additional Dependecies , файла winmm.dll, который необходим для компиляции данной программы. Вот фото, где я его хотел включить в программу. http://riteaboutnow.filesurf.ru/20100222/00000007/aa7da1a4/bd0bb2ca/1.jpg http://fatboy.filesurf.ru/20100222/00000007/8b6a8da7/fcf5cb7d/2.jpg |
Автор: artsb 22.2.2010, 20:41 |
Syltan, http://www.dependencywalker.com/ поможет вам узнать чего не хватает на других компах. |
Автор: Syltan 22.2.2010, 20:52 |
А если утилиты не будет под рукой, как это сделать в студии, в этом вопрос? |
Автор: Syltan 22.2.2010, 21:41 |
Всё, ввроде скомпилил, но проблемма, в том, что программа не работает там где не установленная студия 2008. Поддскжаите, что можно сделать? |
Автор: ISergeyN 22.2.2010, 21:53 | ||
http://forum.vingrad.ru/forum/topic-233481.html |
Автор: Syltan 22.2.2010, 22:57 |
Скажите именно для компиляции длл, что выбрать необходимо из списка, по этой картинке. Когда я выбираю Multi-threaded (/MT) Программа выдаёт такую ошибку: mt.exe : general error c101008a: Failed to save the updated manifest to the file ".\Debug\cd.dll.embed.manifest". 0@0<5B@ 7040= =525@=>. Программа компилится только при выборе Multi-threaded DLL (/MD) и всё, больше никак. |
Автор: Syltan 23.2.2010, 14:32 |
А чтоб не таскать ,есть вариант какой-то, чтоб можно было использовать длл, без всяких посредников:? |
Автор: artsb 23.2.2010, 14:50 |
Выставить Multi-threaded. Но вы же пишете, что у вас не работает так... |
Автор: Syltan 23.2.2010, 17:17 | ||
Да, действительно Mtd при компиляции на дебаге действительно помогло, только жалко что размер длл увеличился. Вот я захотел добавить ещё 1 пункт меню - "Выход из программы". Программа, не хочет воспринимать функцию вывода диалоговых окон. Я хочу чтоб при нажатии "выйти из программы", отображалось сообщение, если я подтверждаю, что согласен, тогда закрыть окно фар. Что можно сделать? Вот исходник:
c:\documents and settings\kasper\мои документы\visual studio 2008\projects\cd\cd\cd.cpp(97) : error C2664: 'MessageBoxW' : cannot convert parameter 3 from 'const char [11]' to 'LPCWSTR' c:\documents and settings\kasper\мои документы\visual studio 2008\projects\cd\cd\cd.cpp(98) : error C3861: 'Close': identifier not found |
Автор: artsb 24.2.2010, 13:00 | ||||||
Так и должно быть.
Пробуйте так:
Полностью согласен с компилером. Что за метод Close? |
Автор: Syltan 24.2.2010, 14:11 |
Мне нужно закрыть программу фар, после того ,как я из меню, которое создал - "Выйти из проги", нажал на него, мне выдало таоке сообщение, если нажал ""ОК"", чтоб фар закрылся, вот такое надо. Просто клосе закрыват форму на с++ Билдере, а на студии как тогда? |
Автор: bsa 24.2.2010, 14:16 |
"На студии" это зависит от используемого API. Если речь про WinAPI, то нужно послать окну сообщение WM_CLOSE. |