7

Visual Studio 2010から2012に切り替えた後、C++プロジェクトの1つでかなり奇妙に見える10個のRC2135エラーが発生しました。

Error   1   error RC2135: file not found: 0x06        NamedPipesNative.rc   19  1   NamedPipesNative
Error   2   error RC2135: file not found: 1           NamedPipesNative.rc   28  1   NamedPipesNative
Error   3   error RC2135: file not found: 5           NamedPipesNative.rc   29  1   NamedPipesNative
Error   4   error RC2135: file not found: 5           NamedPipesNative.rc   30  1   NamedPipesNative
Error   5   error RC2135: file not found: 0x17L       NamedPipesNative.rc   31  1   NamedPipesNative
Error   6   error RC2135: file not found: FILEOS      NamedPipesNative.rc   37  1   NamedPipesNative
Error   7   error RC2135: file not found: 0x2L        NamedPipesNative.rc   38  1   NamedPipesNative
Error   8   error RC2164: unexpected value in RCDATA  NamedPipesNative.rc   41  1   NamedPipesNative
Error   9   error RC2135: file not found: BLOCK       NamedPipesNative.rc   43  1   NamedPipesNative
Error   10  error RC2135: file not found: VALUE       NamedPipesNative.rc   45  1   NamedPipesNative

残念ながら、これはVS 2012への切り替え(C ++プロジェクトを変換するかどうかを尋ねられた)と関係があると思い、その仮定に基づいてそれを理解しようと多くの時間を費やしました。しかし、実際にはそれはまったく異なるものでした。この問題に遭遇した他の誰かを助けることを期待して、私はすぐに答えを投稿します。

4

3 に答える 3

13

Visual Studio 2012への切り替えの一環として、すべてのAssemblyInfo.csファイルと.rcファイルを処理する自家製のプログラムを使用して.rcファイルのプログラムバージョン番号も更新し、.rcファイルのエンコードを変更しました。 ANSIからUTF-8へのrcファイル。また、MicrosoftResourceCompilerはUTF-8ファイルを正しく読み取ることができません。 http://social.msdn.microsoft.com/Forums/hu-HU/vcgeneral/thread/e212069d-678e-4ac8-957f-7d60d3e1c89f

したがって、解決策は、.rcファイルをANSIまたはUTF-16として再エンコードすることです。

于 2013-03-06T09:57:59.650 に答える
1

ビルド前のイベント コマンド ラインを使用して、コンパイル前に UTF-8 ソース ファイルを変換することもできます。

サンプル手順:

  1. UTF-8 ファイルをコンパイルから除外します。

  2. UTF-8 ファイルのコピーを作成し、名前を変更します

  3. ビルド前イベントのコマンド ラインにエントリを追加し、元の UTF-8 ファイルを UNICODE として名前が変更されたファイルに変換します。このツールが役立つ場合があります。

    $(ProjectDir)\tools\uniconv.exe UTF8 $(ProjectDir)\DocumentBrowserUTF8.rc UCS2 $(ProjectDir)\DocumentBrowser.rc

  4. ビルド スクリプト (多くの場合、Visual Studio .vcxproj ファイル) で、元の UTF-8 ファイルではなく、変換されたファイルをコンパイルするようにします。

于 2015-01-16T03:06:54.187 に答える