On-line: Andrey, PSP, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 935
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.10.09 15:12. Заголовок: Как проверить есть ли картинка в EXE файле ?


Привет всем !
Подскажите как можно в программе проверить, есть ли картинка (например "test.jpg") в EXE-файле,
соответственно в ресурсном файле, я включаю картинку.
Это нужно для того, чтоб одну программу ставить нескольким пользователям. И в файле настроек ставить разные картинки.
Заранее спасибо.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 6 [только новые]


модератор




Пост N: 1074
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 12.10.09 16:06. Заголовок: Andrey пишет: как м..


Andrey пишет:

 цитата:
как можно в программе проверить, есть ли картинка (например "test.jpg") в EXE-файле


Попробуй использовать следующую функцию:


 цитата:
HB_FUNC( WIN_LOADRESOURCE )
{
HANDLE hInstance = NULL;

/* Set default return value */
hb_retc_null();

if( hb_winmainArgGet( &hInstance, NULL, NULL ) )
{
LPTSTR lpName = HB_TCHAR_CONVTO( hb_parcx( 1 ) );
LPTSTR lpType = HB_TCHAR_CONVTO( hb_parcx( 2 ) );

HRSRC hRes = FindResource( ( HMODULE ) hInstance, ( LPCTSTR ) lpName, ( LPCTSTR ) lpType );

if( hRes )
{
HGLOBAL hMem = LoadResource( NULL, hRes );

if( hMem )
{
void * pMem = LockResource( hMem );

if( pMem )
hb_retclen( ( char * ) pMem, SizeofResource( NULL, hRes ) );
}
}

HB_TCHAR_FREE( lpName );
HB_TCHAR_FREE( lpType );
}
}


Вызов:
WIN_LOADRESOURCE( "Имя ресурса", "JPG" ) --> если возврат пустой, то картинки нет


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 936
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.10.09 19:50. Заголовок: Спасибо, получилось ..


Не получилось !

cLogoFile := "Harbour_1.jpg"
IF WIN_LOADRESOURCE( cLogoFile, "JPG" ) == "" //NIL
MsgStop( "Нет такой картинки в ресурсах: "+cLogoFile+" !", "Ошибка" )
ENDIF

Почему то всегда выдает "" ?

И выдает предупреждение на эту строчку: if( hb_winmainArgGet( &hInstance, NULL, NULL ) )


А понял ! Если запросить, по "имени ресурса" то все работает !
А как быть с именем файла ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 939
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.10.09 17:21. Заголовок: Почему то при сборке..


Почему то при сборке с этой новой функцией, выдается предупреждение:

Warning W8065 Source\\SBU.prg 535: Call to function 'hb_winmainArgGet' with no prototype in function HB_FUN_WIN_LOADRESOURCE

Как сделать, чтоб это предупреждение пропало ?

Спасибо: 0 
ПрофильЦитата Ответить
модератор




Пост N: 1079
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 22.10.09 18:17. Заголовок: Andrey пишет: Как с..


Andrey пишет:

 цитата:
Как сделать, чтоб это предупреждение пропало ?


Проверь, чтобы секция С-кода начиналась так (см. выделенный текст):
...
#pragma BEGINDUMP

#define HB_OS_WIN_32_USED
#define _WIN32_WINNT 0x0400

#include <windows.h>
#include "hbapi.h"
...

HB_FUNC( WIN_LOADRESOURCE )
{
...



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 940
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.10.09 19:23. Заголовок: Не помогает, у меня ..


Не помогает, у меня уже стояло:

#include <windows.h>
#include "hbapi.h"



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 148
Зарегистрирован: 28.06.05
ссылка на сообщение  Отправлено: 23.10.09 13:57. Заголовок: танцую с бубном




Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 57
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет