問題タブ [string-table]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - 文字列テーブルの正確なリソースタイプ名
文字列テーブルリソースタイプ(BITMAPなど)の正確な名前は何ですか?VisualBasicを使用しています。
検索しましたが、何も見つかりません。
winapi - win32ネイティブexeの文字列テーブルタイプのリソースを変更します
exe
リソース内の文字列を変更したい。そのリソースタイプは文字列テーブルですが、UpdateResource
関数を使用するとき、どのパラメーターを渡す必要があるかわからないため、文字列テーブル内の正確なrawを指しています。
タイプパラメータはですRT_STRING
が、何に送信すればよいMAKEINTRESOURCEW()
ですか?
c - UpdateResource による STRING TABLE の更新 (複数の文字列の追加)
重複の可能性:
UpdateResource を使用した文字列テーブルの更新
UpdateResources を介してバイナリの STRING TABLE を更新しようとしています。現在、私のコードは単一の文字列のみを追加しますが、複数のエントリを文字列テーブルに追加したいと考えています。
これが私のコードです:
`を編集しようとしました
`に
改行文字を無駄に模倣する試みとして。
何か不足していますか?http://msdn.microsoft.com/en-us/library/windows/desktop/aa381050(v=vs.85).aspxを徹底的に調べましたが、重要なポイントを見逃しているようには見えません。どの機能も失敗していません。
c++ - 静的文字列リテラル テーブル?
文字列のグローバル&静的テーブルを作成するC++での正しい方法は何ですか?
「グローバル」とは、ヘッダーを含む任意のファイルから使用できることを意味します。ただし、実行時に作成されたシングルトン オブジェクトの一部ではありません。
「静的」とは、実行時間の設定が可能な限り少ないことを意味します。読み取り専用メモリ ページのデータ。アプリごとに 1 つのデータ インスタンスのみ。
「文字列」とは、つまり、ヌルで終了する文字の配列は問題ありません。std::string はいいでしょうが、上記の点ではできないと思います。正しい?
「テーブル」とは、インデックス可能な配列を意味します。したがって、テーブル自体ではないと思います。しかし、私はこの点で柔軟です。アイデアを受け入れる。
「C++」とは、C ではなく C++ を意味します (更新: C++11 ではなく C++98)。
linux - ELF ファイルの .init セクションの検索
セクションを見つけるにはどうすればよい.init
ですか? セクション ヘッダーにはフィールドがありますElf32_Word sh_name
。したがって、すべてのセクションを調べて、名前のセクションを見つける必要があると思いますが、文字の配列ではありません.init
。sh_name
文字列テーブルのエントリのインデックスです。文字列テーブルはどこにありますか? elfHdr.e_shstrndx
ELF ヘッダーにフィールドがあります。String Table が配置されているセクションのインデックスです。したがって、文字列テーブルのオフセットを計算するには、以下で説明する式を使用します。
しかし、判明したオフセットは文字列テーブルの正しいオフセットではありません。いろいろなファイルで試しました。セクションかどうかを判断する別の方法があるかもしれ.init
ませんか?
c++ - C++ で LoadString() メソッドが機能しない
作業中の DLL ファイルの Strin テーブルから文字列を読み込もうとしています。これは、文字列を にロードすることになっている関数ですstd::wstring
(私のプロジェクトは Unicode charset を使用しているため)。
メソッドを診断するために、最後の 3 行を作成しました。の出力はAfxMessageBox()
です0
。
どこが間違っていますか?
c - 4 回目の反復で C クラッシュの realloc 文字列テーブル
この問題に関してここにはいくつかの回答がありましたが、次のコードにはまだ適合しませんでしsegfault
た4th iteration
。
どんな助けでも大歓迎です!
コードサンプルとvalgrind出力を追加するコメントを読んだ後:
次の行の読み取り (行の長さは 32):libqosadaptor libqosadaptor.%::
要求された再割り当てバイト:8 outputBuffer=0x4C4F360 ==8347== サイズ 1 の無効な書き込み ==8347== 0x4A095CC: strncpy (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==8347== by 0x400DFC: processFile (makefileUpgrade.c:83) ==8347== by 0x400F76: main (makefileUpgrade.c:113) ==8347== アドレス 0x4c4f3d1 はサイズ 33 のブロックの後に 0 バイト alloc'd ==8347== at 0x4A0645D: malloc (/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so 内) ==8347== by 0x400DC4: processFile (makefileUpgrade.c:82) ==8347== by 0x400F76: main (makefileUpgrade.c :113)
--------------------------------------------- 次の行を読む(行長さは 87 です): $(SHOW) $(MAKE) $(MAKEOPTS) REL_DIR=adaptor/qos -C $(ROOT)/adaptor/qos $* -f makefile
valgrind: m_mallocfree.c:277 (mk_plain_bszB): アサーション 'bszB != 0' が失敗しました。valgrind: これはおそらく、プログラムがヒープ ブロックの末尾を超えて誤って書き込み、ヒープ メタデータを破損したことが原因です。Memcheck によって報告された無効な書き込みを修正すると、このアサーションの失敗はおそらくなくなります。これをバグとして報告する前に、それを試してください。
==8347== 0x3805028C: ??? (/usr/lib64/valgrind/memcheck-amd64-linux 内) ==8347== by 0x380503E6: ??? (/usr/lib64/valgrind/memcheck-amd64-linux 内) ==8347== by 0x3805AA4A: ??? (/usr/lib64/valgrind/memcheck-amd64-linux 内) ==8347== by 0x3805C9B7: ??? (/usr/lib64/valgrind/memcheck-amd64-linux 内) ==8347== by 0x38021865: ??? (/usr/lib64/valgrind/memcheck-amd64-linux 内) ==8347== by 0x3809C5C2: ??? (/usr/lib64/valgrind/memcheck-amd64-linux 内) ==8347== by 0x380AB21C: ??? (/usr/lib64/valgrind/memcheck-amd64-linux 内)
スケジュールされたステータス: running_tid=1
スレッド 1: status = VgTs_Runnable ==8347== at 0x4A083AA: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==8347== by 0x400D54: processFile (makefileUpgrade.c:80) == 8347== by 0x400F76: メイン (makefileUpgrade.c:113)
delphi - Delphi 2010: .rc ファイルで定義されたリソース文字列の一部が、結果の .exe にありません
.RC ファイルの一部のリソースは、.RC ファイルで指定された ID を持つ結果の .exe では使用できません。ID 10000、10100 などのリソース文字列を含む RC ファイルがあります。何らかの理由で、ID 10000 (LoadStr(10000)) のリソースをロードすると、別の文字列 ('Invalid field type.' - midas.rc で宣言されている) がロードされます。 VCL からのもので、同じ ID を持っています)。
同じ ID を持つリソースは、ビルド中に "[Error] WARNING. Duplicate resource(s)" につながると想定しました。ただし、リンカー関連の警告はありません。
ps私はDelphi 2010を使用しています。
アップデート:
- この問題の回避策は、id を 10000 から別のものに変更することです。10050、例えば
質問:
- 重複リソースに関する警告がないのはなぜですか?
- 将来その問題を防ぐために何ができるでしょうか?
株式会社マイプロジェクト
myproject.RC ファイル
Rc ファイルは myproject.res ファイルにコンパイルされます。結果の.resファイルには、ID 10000の正しい文字列「LV」があります(リソースエディターで確認しました)。
Delphi coude では、LoadStr 関数を使用してユニットの初期化部分にリソースがロードされます。
likeThat.pas: