1

バックグラウンド:

私のアプリケーションはポータブルで小型でなければならないため、CRT なしで出荷されます。

問題:

Windows XP の仮想マシンでアプリケーションを実行すると、CreateProcess()関数が失敗します。CRTを使用せずに を表示GetLastError() DWORDする必要があります。MessageBox()

sprintf()プログラムに関数を手動で実装して、エラーの型を取得するために型を関数に表示するにはどうすればDWORDよいchar bufferのでMessageBox()、問題を解決できますか。

私は自分のmemset()機能をそのように実装しました

extern "C" void * __cdecl memset(void *, int, size_t);


#pragma function(memset)
void * __cdecl memset(void *pTarget, int value, size_t cbTarget) {
unsigned char *p = static_cast<unsigned char *>(pTarget);
while (cbTarget-- > 0) {
    *p++ = static_cast<unsigned char>(value);
}
return pTarget;
}

sprintf()カスタム関数の実装方法がわからない

ありがとうございました

4

2 に答える 2

4

wsprintf は、CRT を使用せずに Windows で使用できます。#include windows.h だけ

于 2013-06-02T03:21:56.810 に答える