Changeset 468 in dev for trunk/ab5.0/abdev/BasicCompiler64/MakePeHdr.cpp
- Timestamp:
- Mar 27, 2008, 3:04:28 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler64/MakePeHdr.cpp
r460 r468 94 94 extern int obp_AllocSize; 95 95 extern char *basbuf; 96 extern char OutputFileName[MAX_PATH];97 96 int i,i2,i3,i4,i5; 98 97 char temporary[MAX_PATH],*temp2; … … 325 324 // 名前空間が初期化されているかをチェック 326 325 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){ 327 SetError();326 compiler.errorMessenger.OutputFatalError(); 328 327 } 329 328 … … 409 408 //With情報のメモリを解放 410 409 for(i=0;i<WithInfo.num;i++){ 411 SetError(22,"With",WithInfo.pWithCp[i]);410 compiler.errorMessenger.Output(22,"With",WithInfo.pWithCp[i]); 412 411 HeapDefaultFree(WithInfo.ppName[i]); 413 412 } … … 417 416 // 名前空間が正しく閉じられているかをチェック 418 417 if( compiler.GetNamespaceSupporter().GetLivingNamespaceScopes().size() ){ 419 SetError(63,NULL,-1);418 compiler.errorMessenger.Output(63,NULL,-1); 420 419 } 421 420 … … 467 466 468 467 // 格納先ディレクトリを作る 469 Jenga::Common::Path path( OutputFileName);468 Jenga::Common::Path path( program.GetOutputFilePath() ); 470 469 Jenga::Common::Directory dir( path.GetDriveName() + path.GetDirName(), true ); 471 470 472 471 // 書き込む 473 if( !compiler.GetObjectModule().Write( OutputFileName) )472 if( !compiler.GetObjectModule().Write( program.GetOutputFilePath() ) ) 474 473 { 475 474 MessageBox(0,"XML書き込みに失敗","test",0); … … 478 477 } 479 478 480 extern BOOL bError; 481 if( !bError ) 479 if( !compiler.errorMessenger.HasError() ) 482 480 { 483 CompileMessage( "リンク中..." );481 compiler.messenger.Output( "リンク中..." ); 484 482 } 485 483 … … 522 520 hLib=LoadLibrary( pDllProc->GetDllFileName().c_str() ); 523 521 if(!hLib){ 524 extern char OutputFileName[MAX_PATH];525 522 char temp2[MAX_PATH],temp3[MAX_PATH]; 526 _splitpath( OutputFileName,temp2,temp3,NULL,NULL);523 _splitpath(program.GetOutputFilePath().c_str(),temp2,temp3,NULL,NULL); 527 524 lstrcat(temp2,temp3); 528 525 lstrcpy(temp3,pDllProc->GetDllFileName().c_str()); … … 531 528 532 529 if(!hLib){ 533 SetError(-106,pDllProc->GetDllFileName().c_str(),pDllProc->GetCodePos());530 compiler.errorMessenger.Output(-106,pDllProc->GetDllFileName().c_str(),pDllProc->GetCodePos()); 534 531 } 535 532 } … … 538 535 if(!GetProcAddress(hLib,pDllProc->GetAlias().c_str())){ 539 536 FreeLibrary(hLib); 540 SetError(-107,pDllProc->GetAlias(),pDllProc->GetCodePos());537 compiler.errorMessenger.Output(-107,pDllProc->GetAlias(),pDllProc->GetCodePos()); 541 538 } 542 539 FreeLibrary(hLib); … … 574 571 575 572 if(bUse_ExportSection){ 576 _splitpath( OutputFileName,NULL,NULL,lpExportNames,temporary);573 _splitpath(program.GetOutputFilePath().c_str(),NULL,NULL,lpExportNames,temporary); 577 574 lstrcat(lpExportNames,temporary); 578 575 ExportNamesLength=lstrlen(lpExportNames)+1; … … 700 697 701 698 if( pDllProc->GetDllFileName().size() > 16 ){ 702 SetError(7,NULL,cp);699 compiler.errorMessenger.Output(7,NULL,cp); 703 700 break; 704 701 } … … 832 829 CDebugSection *pobj_DebugSection; 833 830 pobj_DebugSection=new CDebugSection(); 834 extern BOOL bError; 835 if( compiler.IsDebug() && bError == 0 ) 831 if( compiler.IsDebug() && !compiler.errorMessenger.HasError() ) 836 832 { 837 CompileMessage( "デバッグ情報を生成しています。" );833 compiler.messenger.Output( "デバッグ情報を生成しています。" ); 838 834 839 835 pobj_DebugSection->make(); 840 836 841 CompileMessage( "デバッグ情報の生成が完了しました。" );837 compiler.messenger.Output( "デバッグ情報の生成が完了しました。" ); 842 838 } 843 839 … … 1121 1117 1122 1118 1123 extern BOOL bError; 1124 if(bError) goto EndWriteOpcode; 1119 if( compiler.errorMessenger.HasError() ) 1120 { 1121 goto EndWriteOpcode; 1122 } 1125 1123 1126 1124 … … 1411 1409 1412 1410 1413 hFile=CreateFile( OutputFileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);1411 hFile=CreateFile(program.GetOutputFilePath().c_str(),GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); 1414 1412 if(hFile==INVALID_HANDLE_VALUE){ 1415 SetError(53,OutputFileName,-1);1413 compiler.errorMessenger.Output(53,program.GetOutputFilePath().c_str(),-1); 1416 1414 goto EndWriteOpcode; 1417 1415 }
Note:
See TracChangeset
for help on using the changeset viewer.