2011-07-18 4 views
0

私は静的読み取り専用文字列データにMicrosoft Visual C++ #pragma section(".text")__declspec(allocate(".text"))を使ってみました。しかしバイナリにはまだ.rdataセクションがあります。私は標準のCライブラリを使用していません。私は、コードインジェクションで使用するバイトコードコンパイラとしてMSVC++を使用しています。MSVC++ - すべてを強制的に `.reloc`を除いて1つのセクションに入れます。

が大幅「の.text」セクション内の読み取り専用データとない「.rdata」セクションを有することによって、注射を単純化するであろう。どうやってやるの? 1つのセクションにすべてを埋め込む、または2つのセクションを一緒にマージするリンカオプションはありますか?

答えて

1

Microsoftリンカーにmerge sectionsオプションがあります。これは私の目的のために動作するように見えます。 /MERGE:[from=to]

1

すべての文字列とその他の静的データを手動でスタックに配置します。

したがって、.text以外のセクションは必要ありません。

char String[] = { 's', 't', 'r', 'i', 'n', 'g', 0 }; 

とUnicode:

wchar_t WideString[] = { L'H', L'e', L'l', L'l', L'o', L'\0' }; 
関連する問題