Проблема в Win98
От: FlameGod  
Дата: 15.05.01 13:10
Оценка:
Приветствую всех!

У меня такая вот проблема:
я пишу программу на MFC и она читает некоторые свои установки из
конца соего .ехе файла. Под Win2K всё рботает, а под Win98 получаю
ошику, что файл не найден.

Можно ли вобще под Win98 читать из своего .ехе файла?

Заранее благодарен!
Re: Проблема в Win98
От: Varchev ILYA Nickolaevich  
Дата: 15.05.01 13:18
Оценка:
Здравствуйте FlameGod, вы писали:

FG>Приветствую всех!


FG>У меня такая вот проблема:

FG>я пишу программу на MFC и она читает некоторые свои установки из
FG>конца соего .ехе файла. Под Win2K всё рботает, а под Win98 получаю
FG>ошику, что файл не найден.

FG>Можно ли вобще под Win98 читать из своего .ехе файла?


FG>Заранее благодарен!



Кусочек кода нужен, однако :=))
Re[2]: Проблема в Win98
От: FlameGod  
Дата: 15.05.01 14:14
Оценка:
Здравствуйте Varchev ILYA Nickolaevich, вы писали:

VIN>Кусочек кода нужен, однако :=))


вот:
эта функция читает РЕ Header своего же .ехе

CFile file;
DWORD sig;
IMAGE_SECTION_HEADER sec_h;

ResetAll();
memset(&sec_h,0,sizeof(IMAGE_SECTION_HEADER));

if(!file.Open(strFileName,CFile::modeRead))
{
throw _T("File \"" + strFileName + "\" not found");
}

file.Read(&m_hDos,sizeof(IMAGE_DOS_HEADER));

if(m_hDos.e_magic != IMAGE_DOS_SIGNATURE)
{
file.Close();
throw _T("Wrong dos signature");
}

file.Seek(m_hDos.e_lfanew,CFile::begin);

file.Read(&sig,sizeof(DWORD));
if(sig != IMAGE_NT_SIGNATURE)
{
file.Close();
throw _T("Wrong win signature");
}

file.Read(&m_hWin,sizeof(IMAGE_FILE_HEADER));

if(m_hWin.SizeOfOptionalHeader == sizeof(IMAGE_OPTIONAL_HEADER))
{
file.Read(&m_hOpt,sizeof(IMAGE_OPTIONAL_HEADER));
}

for(int i=0; i < m_hWin.NumberOfSections ; i++)
{
file.Read(&sec_h,sizeof(IMAGE_SECTION_HEADER));
m_aSections.Add(sec_h);
}

file.Close();
Re[2]: Проблема в Win98
От: FlameGod  
Дата: 15.05.01 14:17
Оценка:
Здравствуйте Varchev ILYA Nickolaevich, вы писали:

VIN>Кусочек кода нужен, однако :=))


забыл сказать, путь я получаю так:

char szExePath[MAX_PATH];
GetModuleFileName(NULL, szExePath, MAX_PATH);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.