проблема с LoadLibrary при использовании WindowsMobile 6.0
От: DmitryAbramov  
Дата: 09.10.08 14:00
Оценка:
Здравствуйте помогите пожалуйста решить следующую проблему.Создал библиотеку и попробовал загрузить её динамически при помощи LoadLibrary но при этом получил ошибку с кодом 126 который соответсвует что путь по которому занружается библиотека неверный. Я скорпировал DLL бибилиотеку и в папку Windows и в папку с exe файлом на эмуляторе но всё равно получал одну и ту же ошибку 126. Вот код того как я это делал
typedef bool (WINAPI *SETProc)(HINSTANCE,int); 
    SETProc setProc;
    HMODULE mod
    
    LPTSTR path =PathFindFileName(L"FuncTest.dll");
    int error=0;
    if(path!=NULL)
    {
            mod = LoadLibrary(_T("FuncTest.dll"));
     
             if(mod!=NULL)
            {
        
                setProc=(SETProc)GetProcAddress(mod,TEXT("setHooks"));
             bool res = (*setProc)(hInstance,20);
             }
          else
           error =GetLastError();
    }
    else
        error = GetLastError();

При этом DLL библиотека тоже написанан С++.
Помогите пожалуйста.
Добавлена разметка — Кодт


11.10.08 02:22: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: проблема с LoadLibrary при использовании WindowsMobile 6
От: __Nikel Россия http://inside-dev.ru
Дата: 10.10.08 17:13
Оценка:
Здравствуйте, DmitryAbramov, Вы писали:

Сложно сказать. Возможно причина кроется в самой библиотеке.
Могу лишь порекомендовать использовать def-файл:

LIBRARY "FuncTest"

EXPORTS
setHooks


Внимательно прочтите статью MSDN о LoadLibrary (Remarks секцию). Эта функция работает несколько иначе, нежели ее десктопный аналог.

А так на первый взгляд все корректно.

DA>Здравствуйте помогите пожалуйста решить следующую проблему.Создал библиотеку и попробовал загрузить её динамически при помощи LoadLibrary но при этом получил ошибку с кодом 126 который соответсвует что путь по которому занружается библиотека неверный. Я скорпировал DLL бибилиотеку и в папку Windows и в папку с exe файлом на эмуляторе но всё равно получал одну и ту же ошибку 126. Вот код того как я это делал

DA>typedef bool (WINAPI *SETProc)(HINSTANCE,int);
DA> SETProc setProc;
DA> HMODULE mod

DA> LPTSTR path =PathFindFileName(L"FuncTest.dll");

DA> int error=0;
DA> if(path!=NULL)
DA> {
DA> mod = LoadLibrary(_T("FuncTest.dll"));

DA> if(mod!=NULL)

DA> {

DA> setProc=(SETProc)GetProcAddress(mod,TEXT("setHooks"));

DA> bool res = (*setProc)(hInstance,20);
DA> }
DA> else
DA> error =GetLastError();
DA> }
DA> else
DA> error = GetLastError();
DA>При этом DLL библиотека тоже написанан С++.
DA>Помогите пожалуйста.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re: проблема с LoadLibrary при использовании WindowsMobile 6
От: Argo1978 США  
Дата: 11.10.08 18:55
Оценка:
Хм, никогда не наблюдал проблем с LoadLibrary на WM. Попробуйте подгрузить какую-нибудь из существующих библиотек. Вероятнее всего это должно получиться, а раз так, значит скорее всего дело в самой вашей DLL.
Re: проблема с LoadLibrary при использовании WindowsMobile 6
От: sugarde  
Дата: 14.10.08 16:31
Оценка:
Здравствуйте, DmitryAbramov, Вы писали:

На вскидку:

Библиотека большая для того места, что есть в памяти после других библ.
Библиотека требует много места под сегмент данных.

Чёткая диагностика в таком случае: загрузка resource-only работает, т.к. библа только мэпится.
В жизни кaждoгo челoвекa бывaют приятные мoменты, кoгдa oн чувствует себя пoлным идиoтoм. Приятнoсть этих мoментoв в пoстижении истины.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.