CreateEvent
自体は実際には(少なくとも私はで動作するように使用されるすべてのWindowsプロジェクトで)WinAPIののsynchapi.h
#ifdef UNICODE
#define CreateEvent CreateEventW
#else
#define CreateEvent CreateEventA
#endif // !UNICODE
通常、この中で宣言されている2つの機能の一つであることが、マクロ#define
「D以外の何ものでもありませんUNICODEマクロが定義されているので、LPCWSTR
(換言すればconst wchar_t*
)のwords引数を受け入れるCreateEventW
関数で動作します。これはUTF-16文字列リテラルであると考えられています。 プロジェクトで定義されていない場合は、LPCSTR
引数(実際にはconst char*
に相当)を受け入れ、それをASCII文字列として扱いますCreateEventA
を使用します。
あなたのプロジェクトは、ASCII文字列のみをサポートするように設定されているようです。そして、これは廃止されました:)以前は、このような状況のためにビルドを有効にする特別なアドオンがありました。これはMFC MBCS DLL Add-onと呼ばれています。しかし、私はそれがまだ利用可能であることを100%確信していません、ここにa question here at StackOverflow about thatです。
このようなアドオンやそのような代替ソリューションが見つからない場合は、コンパイルするための唯一の方法は、プロジェクトをUnicode文字列に移植することです。実際には、回避策が見つかったとしても、このプロジェクトを今後も維持する場合は、このような回避策がいつでも存在する可能性があるため、バックログにこのアクティビティを追加することをお勧めします。
いずれにしても、最終結果について知ることは興味深いでしょう。
これは役に立ちます。https://stackoverflow.com/questions/19715144/how-to-convert-char-to-lpcwstr –
ワイド文字を正しく使用するには、コードベース全体を更新する必要があります。実際には、これは15年前に行われたはずです。 – VTT
"char *"はUTF-8ではまだ標準です。ソフトウェアエンジニアの大部分は "wchar_t *"を嫌い、各文字列式にLを追加します。マイクロソフト社がプログラマーにUNICODEを使用させる唯一の会社だと思われます。マイクロソフトはMBCSを中止したいと思っていますが、いつかすぐに起こるとは思われません。 – JazzSoft