0

asprintf()LinuxのGCCライブラリ関数であり、Windowsには存在しないため、Windowsに移植しようとしています。

var args の長さの計算に行き詰まっているので、それらにメモリを割り当てることができます。私は2つのアプローチを試しました:

  1. var args をファイルに書き込み、関数の結果 (書き込まれたバイト数 = var args の長さ) を取得しますが、ユーザーは自分のアプリ ディレクトリに内部ランダム データが表示されるため、これはばかげています。

  2. 最初のパラメーター (出力を書き込む変数) として NULL を持つ関数vsprintf()を使用して、var args の長さを返しますが、これは XP でのみ機能するため失敗しました。Windows 7 では NULL 変数への書き込みが許可されていません。

これを解決する方法について、これ以上のアイデアはありますか?

4

1 に答える 1

5

代わりに使用してみてください_vscprintf。必要なカウントのみが返されます(終了ヌルは含まれません)。

于 2011-01-19T15:38:21.757 に答える