teresva
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору int CreoExpressStampShow() { // Объявление указателя на функцию, вызываемой из DLL // Обратите внимание – имена объявляемой функции и // функции, вызываемой из DLL, могут и не совпадать, // т.к. за выбор вызываемой функции отвечает // GetProcAddress ProPath CreoExStamp_dll; //nPid = _getpid(); void (*DllFunc) (void); // Загружаем DLL wcscpy(CreoExStamp_dll, w_path_creoex_folder_dll); wcscat(CreoExStamp_dll, L"CreoExStamp.dll"); h_stamp=LoadLibrary(CreoExStamp_dll); // Контроль ошибок – если загрузка прошла успешно, // функция вернет что-то отличное от нуля if (!h_stamp) { printf("Ошибка - не могу найти CreoExStamp.dll\n"); return(0); } // Вызовом GetProcAddress получаем адрес функции CreateCreoExStamp_Form // и присваиваем его указателю DllFunc с явным // приведением типов. Это необходимо т.к. // GetProcAddress возвращает бестиповой far-указатель DllFunc=(void (*)(void)) GetProcAddress(h_stamp,"CreateCreoExStamp_Form"); // Контроль ошибок – если вызов функции GetProcAddress // завершился успешно, она вернет ненулевой указатель if (!DllFunc) { printf("Ошибка! В CreoExStamp.dll" "отсутствует ф-ция CreateCreoExStamp_Form\n"); return(0); } // Вызов функции CreateCreoExStamp_Form из DLL DllFunc(); FreeLibrary(h_stamp); return (0); } | Всего записей: 79 | Зарегистр. 04-12-2008 | Отправлено: 20:29 11-06-2012 | Исправлено: teresva, 20:53 11-06-2012 |
|