Продолжение работы с DLL

Olen 12.03.2004 - 02:20 | Всем прошлым участникам дисскусии привет. Проблема в следующем не могу принять return из функции. Вот код: typedef char (*p)(char *p); p adr = (p) GetProcAddress (hlib, "_sega"); if (!adr) {MessageBox (hwnd,"Функция не определена !!!",":(",MB_OK);} else { char answer[Max_File_Size] = {'\0'}; // -1- answer = (*adr)(FileBuffer); } Вообщем когда строка -1- закоментарена, и следующая за ней срока вызывается без присваивания значения: (*adr)(FileBuffer); то тогда всё работает функция вызывается нормально, прорабатывает своё и корректно возвращается. А когда пытаюсь с приёмом возвращаемого значения - ошибка (Lvalue required). В ЧЁМ ОШИБКА? И вторая просьба только начал пробовать вызывать диалоговые окна из функции библиотеки. Если есть какие нибудь материалы мыльте или дайте ссылочку.
UE 1 - 12.03.2004 - 02:35 | Так нельзя присваивать. В таких случаях обычно передают указатель на буфер в качестве аргумента функции, а в самой функции этот буфер заполняют...
Olen 2 - 12.03.2004 - 15:39 | спасибо UE что и тут помогаешь !!! Я сейчас так и делаю, просто хотелость узнать может быть можно по красивее (послал - принял)... А на счёт работы с диалогами не подскажеш. Что делаю не так: HANDLE hDialog = LoadResource( Thinst, FindResource( Thinst, "IDD_DIALOG1", RT_DIALOG ) ); LPVOID lpDialog = LockResource( hDialog ); hDlgModeless = CreateDialogIndirect( Thinst, (LPCDLGTEMPLATE)lpDialog, (HWND)NULL, (DLGPROC) TestDlgProc ); Всё это дело находится в DLL. И когда код выполняет строку с функцией CreateDialogIndirect, то выскакивает ошибка. Что не так.
UE 3 - 12.03.2004 - 16:04 | 2Olen: да не за что :))) посмотри под отладчиком, чему равно hDialog... есть сильное подозрение, что NULL :( и что-то мне подсказывает, что должно быть так: HANDLE hDialog = LoadResource( Thinst, FindResource( Thinst, MAKEINTRESOURCE(IDD_DIALOG1), RT_DIALOG ) );
Olen 4 - 12.03.2004 - 20:32 | to UE: Ты прав hDialog=NULL после LoadResource. С твоим дополнением тоже самое. И ещё процесс прирывается при попытке выполнить LockResource( hDialog ). Если что то всё это дело происходит в Borland C++.
UE 5 - 13.03.2004 - 04:34 | 2Olen, а у тебя есть такой ресурс? И Thinst - это дескриптор dll-льки, да?
Olen 6 - 13.03.2004 - 20:03 | Вот весь код: HANDLE Thinst; HWND hDlgModeless = NULL; LRESULT CALLBACK TestDlgProc(HWND, UINT, WPARAM, LPARAM); BOOL WINAPI DllMain (HANDLE hInst,DWORD dwReason, LPVOID IpReserved) { Thinst = hInst; return TRUE; } extern "C" __declspec (dllexport) void *sega (char *mas) { int count = strlen (mas); int i; for (i=0; i<count; i++) {mas[i] = mas[i] + 1;} HANDLE hDialog = LoadResource( Thinst, FindResource( Thinst, MAKEINTRESOURCE("IDD_DIALOG1"), RT_DIALOG ) ); LPVOID lpDialog = LockResource( hDialog ); hDlgModeless = CreateDialogIndirect( Thinst, (LPCDLGTEMPLATE)lpDialog, (HWND)NULL, (DLGPROC) TestDlgProc ); return 0; } LRESULT CALLBACK TestDlgProc ( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) { switch( uMsg ) { // Initially set the check box // and radio button states. //............................ case WM_INITDIALOG : break; case WM_COMMAND : break; case WM_DESTROY : hDlgModeless = NULL; break; default : return( FALSE ); } return( TRUE ); Как я понимаю Thinst - у меня это дескриптор моей DLL. На счёт наличия ресурса: вроде всё впорядке - имеется.
UE 7 - 14.03.2004 - 04:02 | Попробуй вместо MAKEINTRESOURCE("IDD_DIALOG1") написать MAKEINTRESOURCE(IDD_DIALOG1), т.е. без кавычек ;)
Olen 8 - 14.03.2004 - 22:25 | to UE: Пытался пишет: Underfined simbol 'IDD_DIALOG1' Попробую опять поковырять уже скомпилированный может что даст.
Olen 9 - 16.03.2004 - 01:10 | Пробовал покопать EXE. Там есть секция ресурсов, имя совпадает... Вот ... что за ... Подскажите кто хоть раз с таким встречался.
Olen 10 - 16.03.2004 - 16:45 | ...
Olen 11 - 17.03.2004 - 20:35 | Ну что так никто и не придумал?
Reindeer 12 - 22.03.2004 - 17:32 | обидно ...
UE 13 - 23.03.2004 - 11:35 | Архивирую исходники в zip и высылай на ящик: razin_artem собака rambler.ru Разберемся уж наверное.
Reindeer 14 - 23.03.2004 - 19:14 | to UE: огромное спасибо !!! Высылаю... ЗЫ: если разберёшся накатай малюсенький мануал...
Olen 15 - 24.03.2004 - 23:19 | ... это ещё не конец. Есть ещё предложения

>>