Отладка приложений


Основные моменты реализации - часть 3


{

// Мало ли что может случиться с плохим указателем!

 return ( FALSE);

 }

// Согласованы ли два этих Cstring-значения?

 if ( pImage->GetFullName О = pTemp->GetFullName ())

 {

// Сообщить пользователю!!

sMsg.FormatMessage ( IDS_DUPLICATEFILE,

pTemp->GetFullName () ); 

AfxMessageBox ( sMsg);

return ( FALSE);

 }

// Если текущее изображение из структуры данных неправильно, 

// то проверим дублирование имен, как это было только что |

 // показано, но адреса загрузки и характеристики ЕХЕ-образа 

// проверить трудно. Если рТетр — неправильный, 

 //то следует пропустить эти проверки.. 

// Это может привести к проблемам, но т. к. рТетр отмечен

 //в списке как неправильный, то переустановка 

// свойств становится проблемой пользователя.

 if ( TRUE == pTemp.->IsValidIinage ( FALSE) ) 

// Проверить, что в проект не добавлены два ЕХЕ-файла.

if ( 0 == ( IMAGE_FILE_DLL &

pTemp->GetCharacteristics ())) 

{

if ( 0 = { IMAGE_FILE_DLL &

pImage->GetCharacteristics ())) 

{

// Сообщить пользователю!!

SMsg.FormatMessage ( IDS_EXEALREADYINPROJECT,

 p!mage->GetFullName (), pTemp->GetFullName () ); 

AfxMessageBox ( sMsg);

// Попытка загрузить два образа, помеченных как

 // "ЕХЕ", будет автоматически отбрасывать данные

 // для plmage. return ( FALSE);

 }

// Проверить конфликты адресов загрузки, 

if ( pImage->GetLoadAddress () == pTemp->GetLoadAddress() )

 {

sMsg.FormatMessage ( IDS_DUPLICATELOADADDR , 

pImage->GetFullName () , 

pTemp->GetFullName () );

if ( IDYES == AfxMessageBox ( sMsg, MB_YESNO)) 

{

// Пользователь хочет изменить свойства вручную

pImage~>SetProperties ();

// Проверить, что адрес загрузки на самом деле

// изменился и что нет конфликта

//с другим двоичным образом.

int iIndex;

if ( TRUE =

IsConflictingLoadAddress (




Начало  Назад  Вперед



Книжный магазин