Changeset 56 in dev for BasicCompiler64/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
  • BasicCompiler64/MakePeHdr.cpp

    r51 r56  
    6565    bUse_DebugSection;
    6666
    67 int AddDataTable(char *buffer,int length){
    68     extern HANDLE hHeap;
    69     extern char *DataTable;
    70     extern int DataTableSize;
    71     int RetNum;
    72 
    73     DataTable=(char *)HeapReAlloc(hHeap,0,DataTable,DataTableSize+length+1);
    74     memcpy(DataTable+DataTableSize,buffer,length);
    75     DataTable[DataTableSize+length]=0;
    76 
    77     RetNum=DataTableSize; //ImageBase+MemPos_DataSectionが後に足される
    78 
    79     DataTableSize+=length+1;
    80 
    81     return RetNum;
    82 }
    83 
    8467
    8568void DebugVariable(void){
     
    124107    //////////////////
    125108    // データテーブル
    126     extern char *DataTable;
    127     extern int DataTableSize;
     109    dataTable.Init();
    128110    if(bDebugCompile){
    129         DataTable=(char *)HeapAlloc(hHeap,0,2);
    130         DataTable[0]=2;
    131         DataTable[1]=0;
    132         DataTableSize=2;
    133     }
    134     else{
    135         DataTable=(char *)HeapAlloc(hHeap,0,1);
    136         DataTableSize=0;
     111        dataTable.Add( (long)0x00000002 );
    137112    }
    138113
     
    841816
    842817    //データセクションのファイル上のサイズ
    843     if(DataTableSize%FILE_ALIGNMENT) FileSize_DataSection=DataTableSize+(FILE_ALIGNMENT-DataTableSize%FILE_ALIGNMENT);
    844     else FileSize_DataSection=DataTableSize;
     818    if(dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=dataTable.GetSize()+(FILE_ALIGNMENT-dataTable.GetSize()%FILE_ALIGNMENT);
     819    else FileSize_DataSection=dataTable.GetSize();
    845820    if(FileSize_DataSection) bUse_DataSection=1;
    846821    else bUse_DataSection=0;
     
    15771552    if(bUse_DataSection){
    15781553        //データ テーブル
    1579         WriteFile(hFile,DataTable,DataTableSize,(DWORD *)&i2,NULL);
     1554        WriteFile(hFile,dataTable.GetPtr(),dataTable.GetSize(),(DWORD *)&i2,NULL);
    15801555        i+=i2;
    15811556    }
     
    16691644    HeapDefaultFree(pHintTable);
    16701645
    1671     //データテーブルに関する情報を解放
    1672     HeapDefaultFree(DataTable);
    1673 
    16741646    //グローバル変数の初期バッファを解放
    16751647    HeapDefaultFree(initGlobalBuf);
Note: See TracChangeset for help on using the changeset viewer.