- PR -

C4819が出現してコンパイルできない

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-11-02 22:10
引用:

buttheadさんの書き込み (2007-11-02 14:42) より:
つまりFIXプログラムと同時に無償で情報を配信しなかったことに不満を感じます。
これを使うか使わないかはMSDNサブスクリプションの会員でないと教えてもらえないとのこと。そのために不便だと感じたのです。


 ん???それは、応対窓口の人が、なんか間違っているような気がする。
あるいは、どの窓口に連絡しましたか?
引用:

マイクロソフト ヘルプとサポート<microsoft.com>より:
修正プログラムの適用方法や適用後の対処方法、またこの修正プログラムが含まれたサービスパックの有無等のご相談には、テクニカルサポートが別途必要になります。詳しくはサポート契約センターにお問い合わせください。


このように、MSDN サブスクリプションは関係ありません。
もっとも、MSDN サブスクリプションに、いくつかのサポートインシデントが付いています<microsoft.com>ので、それのことを指しているのかも知れません。


 ところで、HotFix を適用して問題が解決するかどうかという判断と、混同していませんか?
こちらは、インシデントが必要です。
ただし、HotFix の適用で解決できるという判断がされると、インシデントは取り消されます。
 おそらく、あなたが「使うか使わないかの判断」をするための情報をもらおうとして、別途 MSDN サブスクリプションの契約が必要だと言われたのだと思います。
そうであるなら、あなたが判断するための情報は、KB に、すでにでていますよね(いや、十分だとは言わない。むしろ、足りなすぎる)。
マイクロソフトのオペレータは、あなたの環境で HotFix が有効かどうかの判断をするための情報、すなわち、あなたの環境を聞いて、マイクロソフトに集まっている情報と照らし合わせるという行為に対して、契約が必要だと言っているのだと思います。


 適用することで「直るかどうか」の判断には、テクニカル サポート インシデントが必要です。これは単体で発行することもできますが、MSDN サブスクリプションを購入していれば、いくつか付属しています。
 この判断の後、HotFix の適用で直る、HotFix の範囲外だが製品のバグである、ということがわかれば、インシデントは取り消され、消費しません。HotFix とは関係がないことがわかれば、インシデントが消費されます。


 なので、まずは HotFix を適用してみることをおすすめします。
それで直らなかったときに、テクニカル サポートを受ければいいでしょう。

 あと、MSDN サブスクリプションの、適用可能な範囲については、確認が必要かと思います。
海外拠点も含めて全社的に購入しているなら、アメリカで契約しているものでも有効でしょうが、部署ごとに契約しているなら、契約違反になるかもしれません。
(つか、そういうことは、ここには書かない)


 ところで、アメリカ製のコンポーネントを購入して、その EULA ファイルを見て驚きました。エディタには Shift-JIS と判定されているのですが、日本語に化けてる。。。

じつは。。。

ASCII は Shift-JIS に含まれるので、ASCII だけで書かれていると、コード判定ができないんですね。
ついでに、ファイルをすべてなめて文字コードを判定しているソフトは、まず無いでしょう。先頭の何バイトかだけで判定していると思います。
その範囲に EUC や UTF-16 の特徴を示すコードがなければ、UTF-8 か ASCII、Shift_JIS と判断されるわけです。
例えば、EUC_JP の場合、「美乳」という文字を最初の方に含んでおけば、日本の環境ではほぼ EUC_JP と判断されます。
 私が見たファイルは、後ろの方にフランス語かスペイン語と思われる言葉が書かれていて、そこが化けていました。
発音記号付きの文字が Shift_JIS で解釈され、化けていたんですねぇ。
もし、そこまで読んでいたとしても、日本のソフトですから、日本で使用されるコードと一致するかどうかしか見ないでしょう。
当然、そういう文字は Shift_JIS では「表示不可能」と判断されるでしょうし、日本語 Windows 環境では、表示されないので存在に気づかないでしょう。
私は IE でテキストを表示させ、エンコードを「西ヨーロッパ」にして確認しました。
こういうものの場合、HotFix を適用しても直らないと思います。


遅くに申し訳ないですが。
引用:

buttheadさんの書き込み (2007-10-31 14:46) より:
C2220をダブルクリックで
ファイルの先頭にいくため、
どうもこれはCS4819と同じエラーであるように見えます。

buttheadさんの書き込み (2007-10-31 15:07) より:
CS4819と同じであるということは先に
こちらを解決しなければならないということだと思うんです。

/WXをもしとったとします。
が当然オブジェクトファイルが生まれていないわけですし、warningが
出現するのをコンパイルレベルを規定より下げて解決するのは問題だと思います。


 /WX を取ると、オブジェクト ファイルは作成されます。
警告があっても、オブジェクトは作成されます。
問題は、その警告が、どの程度重大な問題だと判断するか、ではないでしょうか?

 少なくとも、英語 OS + 英語 VS ではコンパイルが通っているんですよね?
ということは、たぶんではなく、確実に日本語 OS 固有の問題ではないでしょうか?
引用されているフィードバックは、「Product Language : Japanese」となっています。
これは、日本語 OS + 英語 VS ではなく、日本語 OS + 日本語 VS でしょう。
また、回避策には英語 VS では正常に動作したと書かれています。
環境が違うので、同じ問題であるとは言いにくいでしょう。


引用:

>ところでアメリカの開発者の間では問題は起きていないのでしょうか?
>起きていないなら、Windows日本語版でVS英語版という組合せだから起きている
>と考えられるので、アメリカの開発者同様にWindows英語版とVS英語版の組合せで
>検証するのが筋であり、最も簡単な回避法だと思います。

その検証には膨大な時間がかかるのはご存知のとおりです。


 半日ほどですみます。いや、SP1 当てるのにかなり時間がかかるから、1日かな?
それを「多大」と判断するかどうかは、人それぞれですけど。
それとも、Virtual PC というプロダクトをご存じでない?
あなたが普段使う環境を壊さず、別の OS を用意できますが、それでは足りませんか?
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2007-11-03 08:00
Jittaさん

適切な回答ありがとうございます。
おそらくこれは日本語OS+英語VS固有の問題です。
そして2003ではなく2005での固有の問題のようです。

文字コードについて

これはC4819だけの膨大なワーニングが出現していましたが、
最終的に本当に文字化けがしてないかどうか調べてみたところ
いくつかのファイルで起こっており、それを消すとそのファイルからは
ワーニングが出なくなりました。

また、同様に他のファイルも調べてみたところ文字化けは起こってませんでしたが
すべてのコメント部分を消して再度コンパイルしたところ通るようになりました。

これは明らかに日本語OS+英語VS固有の問題です。
現在、MSに調べてもらってますが(手続きばかりで技術者と話せてない、まだ回答がない)
今のところそのような特殊事情が原因のようです。
ちなみにこれらはBOOSTのヘッダ部分ででています。
そしてコメント部分に「登」などの文字を発見しました。

ヴァーチャルPCについて

昔VMWAREを使っていました。そしてメモリが十分あれば、結構有用でした。
が、正直、開発者はすべてアメリカ人のなかで僕しか日本人がいないため
この特殊要項があり、VMWAREを買ってくれと説得できるかどうかはちょっとまだわかんないですが、、(アメリカ人は自分にない問題をただ、なぜできないんだと攻めることのほうが多い)またこの問題が発生するなら、もしくはしないように方法を探してみます。


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-11-03 21:03
VMWare Player なら無料です。
http://www.vmware.com/jp/products/player/
単体で Windows 環境を作ることはできませんが、公開されているあるファイルを落としてきて、・・・


Virtual PC 2007 も無料です。
http://www.microsoft.com/japan/windows/virtualpc/default.mspx
こちらは Windows 環境を作ることもできます。


どちらも、仮想環境に仮想環境用のソフトをインストールしないと使い物にならないくらい遅いです...

私は、実機が 1GB のメモリを積んでいる環境で、Virtual PC (Windows XP)に 128MB のメモリを割り当てて、快適に使えています。



引用:

(手続きばかりで技術者と話せてない、まだ回答がない)


おかしいですね。私の時は、手続きは電話で済んで、すぐに技術者の方とお話しできましたよ?
あ、MSDN のテクニカル サポートでしたね。こちらは、「緊急のトラブル対応」が付いていませんので、そのためかもしれません。


というわけで、MSDN サブスクリプションを申し込んでいて、まだテクニカル サポートを受けていない方。早めに手続きだけしておきましょう。
99ri
大ベテラン
会議室デビュー日: 2006/09/09
投稿数: 129
投稿日時: 2007-11-03 22:29
引用:

最終的に本当に文字化けがしてないかどうか調べてみたところ
いくつかのファイルで起こっており、それを消すとそのファイルからは
ワーニングが出なくなりました。

また、同様に他のファイルも調べてみたところ文字化けは起こってませんでしたが
すべてのコメント部分を消して再度コンパイルしたところ通るようになりました。

ちなみにこれらはBOOSTのヘッダ部分ででています。
そしてコメント部分に「登」などの文字を発見しました。



BOOSTのヘッダ部分がVS2005のどのファイルかわかりませんが

要約すると
英語版で作成した
ASCII(00-7F)のみ使用しているソースコードを
日本語OSとVS2005(英語版)で使用すると
ソースコードにASCII(00-7F)以外が含まれるようになり
文字コードによるエラーが発生した

ということでしょうか?


[ メッセージ編集済み 編集者: 99ri 編集日時 2007-11-03 22:39 ]
未記入
大ベテラン
会議室デビュー日: 2005/03/12
投稿数: 148
投稿日時: 2007-11-04 01:33
俺もそれが気になる。
英語なのに日本語で文字化けってどういうことなんだろう。

文字コードで誤動作する経験は確かにあったけどVS2005じゃなかったな。
ウムラウトでもあるんかな。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2007-11-04 04:04
引用:

ちなみにこれらはBOOSTのヘッダ部分ででています。
そしてコメント部分に「登」などの文字を発見しました。



これを最初に書いてればすぐに原因がわかったんですけどね。「boost C4819」で検索するとたくさん事例が見れますよ。
この問題は VS のバグではありません。期待どおりの動作です。
未記入
大ベテラン
会議室デビュー日: 2005/03/12
投稿数: 148
投稿日時: 2007-11-04 05:47
ところで
OS英語、IDE英語はOK
OS日本語、IDE英語はNG
ってことはIDEはOSの設定でも見て動作を変えているの?
RUN
常連さん
会議室デビュー日: 2007/10/05
投稿数: 32
お住まい・勤務地: 東京都
投稿日時: 2007-11-05 00:14
引用:

未記入さんの書き込み (2007-11-04 05:47) より:
ところで
OS英語、IDE英語はOK
OS日本語、IDE英語はNG
ってことはIDEはOSの設定でも見て動作を変えているの?



冷静に考えてみよう。
OSが日本語と英語に分かれているということは、厳密な意味では双方が同じOSと言うわけではない。
何故なら、厳密な意味で同一であるならば、日本語版と英語版というように別々に作って販売する必要が無いからだ。

ソフトウェアが英語と日本語と分かれているということは、対象OSを同じ言語のOSへとカスタマイズされている可能性が高い。
なぜならば、カスタマイズしていないならわざわざ日本語版と英語版というように分ける必要が無いからだ。

上記二つの事より、日本語版+英語版というように交差してインストールすれば、そのカスタマイズ部分で問題が発生する可能性があるのは一目瞭然ではないだろうか?
どこで発生するかは、実際に組み合わせて試して見ないとわからないという部分はあるけどね

スキルアップ/キャリアアップ(JOB@IT)