0

本日、Surface Go 2 を購入し、Visual Studio 2019 をインストールしました。以前の PC で正常にコンパイルされたプロジェクトを VS19 でも読み込みました。

最初に気付いた問題は、VS エディターが.cppファイル内の Unicode 文字 (キリル文字) を象形文字として表示することです。

card->NewTextW(L"Çàãðóçêà", ...

それ以外の:

card->NewTextW(L"Загрузка",

次に、プロジェクトをコンパイルしようとしましたが、100 を超えるエラーが発生しました。それらはすべて、コンパイラが からconst wchar/char *に変換できないことに関するものでしたがwchar/char *、繰り返しますが、以前、別の PC で、すべてが正常にコンパイルされました。このエラーは、ほぼすべてのタイプの文字列で表示され、上記のようにエンコーディングが間違っている文字列とそうでない文字列で表示されます。

エラーの具体例

card->NewTextW(L"Çàãðóçêà", 3, r.right/2-50, r.bottom / 2 - 350 / 2 - 80 + 350 + 60, 10, 20, RGB(0, 0, 0));
card->NewText("eng-string", 4, r.right/2-50, r.bottom / 2 - 350 / 2 - 80 + 350 + 60, 10, 20, RGB(0, 0, 0));

cardインターフェイス仮想クラスのオブジェクトへのポインターはどこにありますかICard:

class ICard
{
public:
...
virtual void NewTextW(wchar_t *text, int id, int x, int y, int divid, int j, COLORREF col) = 0;
virtual void NewText(char *text, int id, int x, int y, int divid, int j, COLORREF col) = 0;
...
}card*;

エラーが出ない具体例

MessageBoxA(NULL, "aga", "uogou", MB_OK);
4

2 に答える 2

-1

Godbolt.org でコードがそのまま機能しているようです

https://godbolt.org/z/nGz3hcG3c

パラメータを変更する必要はありませconstん...

gcc を使用すると警告が表示されますが、msvc は表示されません

これは、msvc19 ではなく、コンパイラの問題のように見えます。VS インストールに、警告をエラーとして扱う設定があるのだろうか? このオプションを無効にするには、https://stackoverflow.com/a/66485736/496405を確認してください。

于 2021-04-07T19:09:16.763 に答える