Changeset 56 in dev for BasicCompiler32/MakePeHdr.cpp


Ignore:
Timestamp:
Feb 15, 2007, 3:39:40 AM (17 years ago)
Author:
dai_9181
Message:

・[Unicode]リテラル文字列のスイッチング
・[Unicode]Char型を文字型として扱うようにする
・[Unicode]SByte型を追加する
に対応。

/unicodeコマンドオプションに対応。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/MakePeHdr.cpp

    r51 r56  
    7777
    7878
    79 int AddDataTable(char *buffer,int length){
    80     extern HANDLE hHeap;
    81     extern char *DataTable;
    82     extern int DataTableSize;
    83     int RetNum;
    84 
    85     DataTable=(char *)HeapReAlloc(hHeap,0,DataTable,DataTableSize+length+1);
    86     memcpy(DataTable+DataTableSize,buffer,length);
    87     DataTable[DataTableSize+length]=0;
    88 
    89     RetNum=DataTableSize; //ImageBase+MemPos_DataSectionが後に足される
    90 
    91     DataTableSize+=length+1;
    92 
    93     return RetNum;
    94 }
    95 
    9679void DebugVariable(void){
    9780    char temporary[255];
     
    136119    //////////////////
    137120    // データテーブル
    138     extern char *DataTable;
    139     extern int DataTableSize;
     121    dataTable.Init();
    140122    if(bDebugCompile){
    141         DataTable=(char *)HeapAlloc(hHeap,0,2);
    142         DataTable[0]=2;
    143         DataTable[1]=0;
    144         DataTableSize=2;
    145     }
    146     else{
    147         DataTable=(char *)HeapAlloc(hHeap,0,1);
    148         DataTableSize=0;
     123        dataTable.Add( (long)0x00000002 );
    149124    }
    150125
     
    828803
    829804    //データセクションのファイル上のサイズ
    830     if(DataTableSize%FILE_ALIGNMENT) FileSize_DataSection=DataTableSize+(FILE_ALIGNMENT-DataTableSize%FILE_ALIGNMENT);
    831     else FileSize_DataSection=DataTableSize;
     805    if(dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=dataTable.GetSize()+(FILE_ALIGNMENT-dataTable.GetSize()%FILE_ALIGNMENT);
     806    else FileSize_DataSection=dataTable.GetSize();
    832807    if(FileSize_DataSection) bUse_DataSection=1;
    833808    else bUse_DataSection=0;
     
    15561531    if(bUse_DataSection){
    15571532        //データ テーブル
    1558         WriteFile(hFile,DataTable,DataTableSize,(DWORD *)&i2,NULL);
     1533        WriteFile(hFile,dataTable.GetPtr(),dataTable.GetSize(),(DWORD *)&i2,NULL);
    15591534        i+=i2;
    15601535    }
     
    16481623    HeapDefaultFree(pHintTable);
    16491624
    1650     //データテーブルに関する情報を解放
    1651     HeapDefaultFree(DataTable);
    1652 
    16531625    //グローバル変数の初期バッファを解放
    16541626    HeapDefaultFree(initGlobalBuf);
Note: See TracChangeset for help on using the changeset viewer.