Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
длл функции winapi
|
|||
|---|---|---|---|
|
#18+
Добрый день! Помогите пожалуйста сделать на winapi c++, у меня ошибка при создании новой директории, функию удаления создавал, то она работает, а эта вылетает. зарание спасибо! #include <iostream> #include <windows.h> using namespace std; typedef BOOL (WINAPI *hCreateDirectoryFunc)(LPSTR lpStr); int main() { hCreateDirectoryFunc hCreateDirectory=NULL; HMODULE hKernel32=NULL; hKernel32=GetModuleHandle("kernel32.dll"); if (hKernel32==NULL) { MessageBox(NULL,"Error Load Kernel32","Error",MB_OK); return FALSE; } hCreateDirectory=(hCreateDirectoryFunc)GetProcAddress(hKernel32,"CreateDirectoryA"); if (hCreateDirectory==NULL) { MessageBox(NULL,"Error Load hDelete","Error",MB_OK); return FALSE; } if ((*hCreateDirectory)((LPSTR)"D:\\1")) MessageBox(NULL,"Deleted","Message",MB_OK); else MessageBox(NULL,"Not Deleted","Message",MB_OK); return 0; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2013, 14:09 |
|
||
|
длл функции winapi
|
|||
|---|---|---|---|
|
#18+
Artem843, динамическая загрузка и GetProcAddress() здесь не нужны. Переделай пример чтобы kernel32 линковалась статически и вызывай функцию напрямую. Если ты работаешь в VS, то ничего делать не нужно т.к. настройки по умолчанию это обеспечивают. В итоге твой код должен выглядеть примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. Еще одна ошибка в коде с динамической загрузкой это явное использование функции CreateDirectoryA вместо CreateDirectoryW. Современные версии Windows используют Unicode версии api функций. Явно вызывая *A версию, ты заставляешь ОС транслировать аргументы в Unicode и чтобы затем вызывать *W функцию. То есть программа делает лишнюю работу. Кроме того для перехода на Unicode версии тебе придется вручную править код. Заголовочные файлы Windows SDK уже решают эту задачу путем подстановки *A и *W версии вместо функции без суффикса. В общем лучше это возложить на . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2013, 14:39 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38185666&tid=2020376]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 288ms |
| total: | 459ms |

| 0 / 0 |
