1

タイプ LPTSTR の 2 つのパラメーターを受け取る関数があり、以下のように sprintf を使用して両方の値を出力しようとしていますが、正確な値を出力できません。

int __stdcall Logon(LPTSTR UserName, LPTSTR Password)
{
  char Buffer[2048];
  sprintf(Buffer,"UserName: %s\n m_Password: %s\n",UserName,Password);
  FILE *Ls=fopen("lo.log",a);
  fprintf(Ls,Buffer);
  fclose(Ls);
}
4

2 に答える 2

4

プロジェクト設定で「Unicode 文字列を使用する」を修正するか、

_stprintf(Buffer, _T("UserName: %S\n m_Password: %S\n"), UserName, Password);

#include <tchar.h>

Unicode を使用する場合 (実際に使用している場合)、'%S' 形式を使用してください。

于 2012-05-29T13:40:10.493 に答える
2

とがワイド文字列 ( ) として格納されていて、それらをバッファーに入れようとしていると仮定するとUserName、 Visual C++ を使用してこれを達成します。Passwordwchar_tchar[]%S

sprintf(Buffer,"UserName: %S\n m_Password: %S\n",UserName,Password);
于 2012-05-29T14:15:09.597 に答える