トップページ⇒tech
1001コメント291KB

Visual Studio 2005スレ Part14

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/07/07(金) 13:43:33
Visual Studio 2005 Developer Center
http://www.microsoft.com/japan/msdn/vstudio/2005/
http://lab.msdn.microsoft.com/vs2005/

Visual Studio 2005 製品ライン概要
http://www.microsoft.com/japan/msdn/vstudio/productinfo/productline/
http://www.microsoft.com/japan/msdn/howtobuy/vs2005/
0652デフォルトの名無しさん2006/08/07(月) 16:20:55
>>651
奴らにコンパイルさせたら何年かかることか。
0653デフォルトの名無しさん2006/08/08(火) 00:14:06
MSDN入っている人バグレポートお願いします。

// KanjiBug.hUTF-8
class CKanjiBug
{
C2001()
{
CString cstr("り");// C2001 or compile error
};
CKanjiBug() { };
~CKanjiBug() { };
}
0654デフォルトの名無しさん2006/08/08(火) 00:20:26
>>653
お前はまともにバグレポートもかけないのか
0655デフォルトの名無しさん2006/08/08(火) 00:26:17
窓口分かりません。教えてもらえませんか?
2005でもエラーでますか?(UTF-8で保存した物)
0656デフォルトの名無しさん2006/08/08(火) 00:28:42
実際に使用しないとエラー出ません。下のようなファイル作ってください。
//main.cpp UTF-8
main()
{
CKanjiBug kanjibug;
}
0657デフォルトの名無しさん2006/08/08(火) 00:41:58
釣りにしちゃレベルが低すぎるな。ゴミだ。
燃えるゴミは今日の朝のうちに持って来いよ。
0658 ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄2006/08/08(火) 00:44:52
         ,. -ー冖'⌒'ー-、
        ,ノ         \
       / ,r‐へへく⌒'¬、  ヽ
       {ノ へ.._、 ,,/~`  〉  }    ,r=-、
      /プ ̄`y'¨Y´ ̄ヽ―}j=く    /,ミ=/
    ノ /レ'>-〈_ュ`ー‐'  リ,イ}    〃 /
   / _勺 イ;;∵r;==、、∴'∵; シ    〃 /
  ,/ └' ノ \   こ¨`    ノ{ー--、〃__/
  人__/ー┬ 个-、__,,.. ‐'´ 〃`ァーァー\
. /   |/ |::::::|、       〃 /:::::/    ヽ
/   |   |::::::|\、_________/'   /:::::/〃
!     l   |::::::|  ` ̄ ̄´    |::::::|/
    ノ\ |::::::|            |::::::|
0659デフォルトの名無しさん2006/08/08(火) 00:48:07
それをsageて書き込むと一部の専ブラで悲しいことになるからやめろと小一時間(ry
0660デフォルトの名無しさん2006/08/08(火) 01:00:34
>>656
ちったあ口の利き方考えろ。

それはさておき、UTF8のソースをBOM無しで保存してるからそういう目にあう。
BOMつけて保存しなおしてからビルドしてみろ、問題なく通るから。

それと、オンラインのMSDNは別に会員じゃなくてもアクセスできる。
C2001でググってみろ。普通にひっかかるぞ。

改行が〜って出て直接の原因じゃないように見えるだろうが、
恐らく文字化け起因だろうということはこの時点でわかる。

これでいいか?
0661 ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 2006/08/08(火) 01:10:55
         ,. -ー冖'⌒'ー-、
        ,ノ         \
       / ,r‐へへく⌒'¬、  ヽ
       {ノ へ.._、 ,,/~`  〉  }    ,r=-、
      /プ ̄`y'¨Y´ ̄ヽ―}j=く    /,ミ=/
    ノ /レ'>-〈_ュ`ー‐'  リ,イ}    〃 /
   / _勺 イ;;∵r;==、、∴'∵; シ    〃 /
  ,/ └' ノ \   こ¨`    ノ{ー--、〃__/
  人__/ー┬ 个-、__,,.. ‐'´ 〃`ァーァー\
. /   |/ |::::::|、       〃 /:::::/    ヽ
/   |   |::::::|\、_________/'   /:::::/〃
!     l   |::::::|  ` ̄ ̄´    |::::::|/
    ノ\ |::::::|            |::::::|
0662デフォルトの名無しさん2006/08/08(火) 01:17:55
このバグレポートは日本のテクニカルサポートだと思うのですが、非会員でも出来ますか?C2001はググっても見つかりませんよ。
今度からBOM付けてみます。ありがとうございました。
0663デフォルトの名無しさん2006/08/08(火) 01:29:46
>>662
日本語
http://msdn2.microsoft.com/ja-JP/library/4x3c2e37.aspx
英語
http://msdn2.microsoft.com/en-us/library/4x3c2e37.aspx

うだうだ言ってる暇があったら「MSDN C2001」でググれ!
3秒で見つかるわ!
0664デフォルトの名無しさん2006/08/08(火) 01:37:10
>>663
BOM問題の解には見えないのですが…バカですか?すみません。
0665デフォルトの名無しさん2006/08/08(火) 01:41:53
>>664
手取り足取り教えてやらないとわからないのかよ…
改行が狂ってるってコンパイラがお怒り(C2001の時点でこれが判明)なら、
文字コード回りを疑うわけだろ、普通。
その後は UTF8 VisualStudio でググレば一撃で答えがでるじゃねえか。
この程度の味噌も片付けられねえ癖して何抜かしてやがんだ。アホらしい。
0666デフォルトの名無しさん2006/08/08(火) 02:05:21
>665

おまえ、親切だな。
0667 ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄2006/08/08(火) 02:07:03
         ,. -ー冖'⌒'ー-、
        ,ノ         \
       / ,r‐へへく⌒'¬、  ヽ
       {ノ へ.._、 ,,/~`  〉  }    ,r=-、
      /プ ̄`y'¨Y´ ̄ヽ―}j=く    /,ミ=/
    ノ /レ'>-〈_ュ`ー‐'  リ,イ}    〃 /
   / _勺 イ;;∵r;==、、∴'∵; シ    〃 /
  ,/ └' ノ \   こ¨`    ノ{ー--、〃__/
  人__/ー┬ 个-、__,,.. ‐'´ 〃`ァーァー\
. /   |/ |::::::|、       〃 /:::::/    ヽ
/   |   |::::::|\、_________/'   /:::::/〃
!     l   |::::::|  ` ̄ ̄´    |::::::|/
    ノ\ |::::::|            |::::::|
0668デフォルトの名無しさん2006/08/08(火) 02:26:41
VS2005のC++でメソッドやクラスのコメントの
スケルトン作成コマンドってあるんでしょうか?
C#のスラッシュ三つ打つみたいやつです。
0669デフォルトの名無しさん2006/08/08(火) 02:34:45
なんか昨日も似た様な話題が出た様な

クラスウイザード関連に頑張ってもらうしかないんじゃないかな
そのものズバリはやってくれないけど、関数の追加コマンドとかは
一応行コメントの準備くらいはしてくれるはず
0670デフォルトの名無しさん2006/08/08(火) 03:49:15
>>665
文字コードの具合でUTF16->UTF8 BOM付きに戻したけどエラーじゃないか。死ね。
0671デフォルトの名無しさん2006/08/08(火) 04:20:58
もうね
0672デフォルトの名無しさん2006/08/08(火) 04:31:14
他のMSDNサブスクリプション入っている方バグレポートお願いします。
0673デフォルトの名無しさん2006/08/08(火) 04:35:40
う財から、UTF8じゃなくしてもでるのか。
ほかのそーすをUTF8にしてもでるのかやってこい。
0674デフォルトの名無しさん2006/08/08(火) 05:58:45
>>655
>2005でもエラーでますか?(UTF-8で保存した物) 
といってるってことはVC2005は使ってないということだな?
コンパイラのバージョンはなんだ。VC6はShift_JIS(ANSI)しか受け付けないぞ。
0675デフォルトの名無しさん2006/08/08(火) 06:10:55
またお前か。テストもしないくせに大口出鱈目叩くだけならひっこんでろよ。

2003
.Net framework1.1のバグかもしれん
0676デフォルトの名無しさん2006/08/08(火) 07:30:32
>>653
ところで、関数定義の後にセミコロンは要らないぞ。
0677デフォルトの名無しさん2006/08/08(火) 08:16:35
ていうかここ2005スレだし
0678デフォルトの名無しさん2006/08/08(火) 08:26:31
class CKanjiBug 
{ 
略
~CKanjiBug() { }; < 余計なところにあるのに
}    <肝心なところにない

1.1のならUTF-8は問題ない。
16進ダンプを取れるならKanjiBug.hの先頭16バイトほどここにアップしてみたらいいよ。
0679デフォルトの名無しさん2006/08/08(火) 08:56:11
VCってUTF-8正式サポートして無くなかったっけ?
0680デフォルトの名無しさん2006/08/08(火) 09:30:12
徹夜明けだからミス勘弁してくれ。
2005もたぶん同じバグ持っている?、後々迷った人向け道しるべ、バグレポート希望。投稿したけど無駄だったようだな…(´-`).。oO(もうしらね)
0681デフォルトの名無しさん2006/08/08(火) 09:58:13
Express Edition 落として自分で試せよwww
0682デフォルトの名無しさん2006/08/08(火) 11:39:44
>>680
VS2005では出ないし、2003でも出ねえよ。
保存の仕方間違えてるんじゃねえのか?

#include <stdio.h>

int main(int argc, char argv[])
{
printf("り");
return 0;
}


「Unicode (UTF-8 シグニチャなし) - コードページ 932」で保存->
error C2001: 定数が 2 行目に続いています。
error C2143: 構文エラー : ')' が 'return' の前にありません。

「Unicode (UTF-8 シグニチャ付き) - コードページ 932」で保存->
エラー 0、警告 0

どうやったらそんな簡単な問題が、2年以上使われてるソフトで放置されてるなんて
おめでたい思考に行き着くんだか、親の顔が見てみてえよ。
上司でも先生にでも聞いて笑われて来い。
0683デフォルトの名無しさん2006/08/08(火) 13:02:10
WindowsXP
VisualC#2005ExpressEdition

フォームにdatagridviewを貼り付けて
datamember とか、datasorceとかを設定してdatasetと結びつけて(?)
使ってます。

AllowUserToDeleteRowsをTrueにしているのに、
行をDeleteキーで消すことができません。

このDataGridViewにKeyPressイベントを設けて、
DataGridViewがフォーカストされてるときに押された
Deleteキーが認識されているのかをチェックしてみたのですけど、
KeyPressイベントがきませんでした。
リターンキーを押したら、KeyPressイベントがちゃんときました。

何から手を付けたらよいのか、ご教示賜りたく
宜しくお願い申し上げます。
06846832006/08/08(火) 13:17:43
「解説 DataGridView がデータにバインドされている場合、このプロパティと IBindingList.AllowRemove プロパティの両方が true に設定されていれば、ユーザーは行を削除できます。」

という記載をMSDNで発見しました。
私の場合は、
(1)DataGridViewがデータにバインドされています。
(2)このプロパティ(AllowUsertoDeleteRows)はTrueです。
(3)IBindingList.AllowRemove がTureかFalseか確認できません。

IBindingList.AllowRemove をMSDNで検索すると、
http://msdn2.microsoft.com/ja-jp/library/system.componentmodel.ibindinglist.allowremove.aspx
「Remove または RemoveAt を使用してリストから項目を削除できるかどうかを示す値を取得します。 」
とだけは書いてあります。
取得はできるけど、設定はできないようです。

上記(3)だけ解消すればうまくいくような気がします。

躓いてしまいました。諸先輩方、宜しくお願い申し上げます。
0685デフォルトの名無しさん2006/08/08(火) 13:19:34
>>682
糞うぜえ夏厨だな。低スキルなら低スキルらしくママのおっぱいでもしゃぶってろよ。
それがどうやったら使えるのか、3階からヘッドバッドしながら聞いてみたい。
0686デフォルトの名無しさん2006/08/08(火) 15:06:24
>>684
バインドしてるデータはDataSetそれともDataView?
DataViewのAllowDeleteとかそれっぽいが。
06876832006/08/08(火) 15:41:10
>>686
レスさんくすです。
System.Data.DataSetです。
0688デフォルトの名無しさん2006/08/08(火) 17:17:39
ボタン1を押すとPictureBox1の画像が反転(色が。白が黒になるように)したいんですけど

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {    }

カッコの中はどのように書けばいいんでしょうか?漠然な質問で申し訳ありませんがどうかよろしくお願いします><
本当にわからないんです。・゚・(ノД`)・゚・。
06896882006/08/08(火) 17:26:48
ちなみに画像はBMPファイルです。。。高さ、横の長さが取得したいです・・・
0690デフォルトの名無しさん2006/08/08(火) 18:49:07
>>689
ヘッダ嫁
0691デフォルトの名無しさん2006/08/08(火) 19:15:00
>>688
そもそもVS2005ではなく、BCBな希ガス
0692デフォルトの名無しさん2006/08/08(火) 19:23:20
C++/CLIだろ
06936882006/08/08(火) 19:30:17
>>690
>>691
>>692
まあ自分でもよくわからんのですが、VS2005のC++でござんす。

int x=pictureBox1->Width;
int y=pictureBox1->Height

適当にこんなんやってみたんだけどこれでforでまわしたらちゃんと色の反転できるのかしら?
てか色の制御はどうやるんざましょ?255−自分の値で反転するのはわかるんですがどう書けば・・・
RGBをいじるにはどうしたらいいんでしょうか??
0694デフォルトの名無しさん2006/08/08(火) 19:44:11
>>693
ピクセル単位でなんてやる必要は無い。この辺を参考に。
http://msdn2.microsoft.com/ja-JP/library/a7xw19wh.aspx
0695デフォルトの名無しさん2006/08/08(火) 21:50:56
>>685
で、結局できたのか?

>>678の
>16進ダンプを取れるならKanjiBug.hの先頭16バイトほどここにアップしてみたらいいよ。

は試したか?
0696デフォルトの名無しさん2006/08/09(水) 00:04:00
>>695
ソースがUTF-8でもUTF16でもコンパイルは通る。
ただ、MBSCでもコンパイラは文字列をASCIIへ変換しない、Lのような識別子も無い。
↓
#ifdef _UNICODEで文字列毎に2A変換マクロか、UNICODE一本(必然的に9x系斬り捨て)、もしくは_T("\xAA\xBB")(ASCII)しかない。
↓
UTF-8が必要になるような多言語ソースはMBSCでは(Win 9x向けには)書けない。

(´-`).。oO(仕様?)
0697デフォルトの名無しさん2006/08/09(水) 00:06:01
日本語リソース含んでいると、英語Windowsではエラーでるんだよな(禿藁)
1041フォルダ掘れってことか…(´-`).。oO(・・・・・)
0698デフォルトの名無しさん2006/08/09(水) 00:24:00
>>696
>ただ、MBSCでもコンパイラは文字列をASCIIへ変換しない、Lのような識別子も無い。 
これは初耳。VC2002-2005はソースのエンコードがどれでも "xx" はANSI文字列、
L"xx"はUNICODE(LE)にコンパイルされると思ったが違うの?
0699デフォルトの名無しさん2006/08/09(水) 00:41:16
>>698
いや、それで正しいはずだ。
なんか>>696の目的としているところがはっきりしないんだが、まず

1・コンパイルは通るようになったんだよな?
最初は通らなかったようだったが、どーやって通るようになったの?

2・通した後で、どんな動作を期待してるんだ?
特定の文字列リテラルをのエンコードを何らかの方法で指定したいの?
0700デフォルトの名無しさん2006/08/09(水) 00:42:59
えへへ、マルチバイト設定になってた。設定なしでコンパイル通った。スマソ。
0701デフォルトの名無しさん2006/08/09(水) 00:48:47
>>700
s/コンパイル通った/ASCIIに変換されるようになった/
0702デフォルトの名無しさん2006/08/09(水) 00:49:30
>>700
つまりなんだ。
結局全部解決したのか?
0703デフォルトの名無しさん2006/08/09(水) 00:54:57
>>702
解決。
(´-`).。oO(MBSCでなぜUTF-8になっていたのか疑問は残るけど…MBSCと設定なしの違いって何?)
0704デフォルトの名無しさん2006/08/09(水) 00:56:56
つか、MBSCって何?
0705デフォルトの名無しさん2006/08/09(水) 01:01:30
揚げ足取るなよ厨房。MBCS
0706デフォルトの名無しさん2006/08/09(水) 01:13:16
揚げ足も何も、略語間違えられたんじゃ意味が通らんわ。
つーかマルチバイト文字セットがUTF-8って時点でおかしいんだぞ。
マルチバイト文字セットは非UNICODEなんだから。
なんだか知らんが期待通りの動作になってるみたいだから、
よかったねとしか言うことがないが。
0707デフォルトの名無しさん2006/08/09(水) 01:15:25
あれ…MBSCでも動く。夢でも見たのか??
確かにりが3バイトあったはずなのに・・・?
0708デフォルトの名無しさん2006/08/09(水) 01:16:00
UTF-8 は MBCS だと思うけどなぁ・・・
0709デフォルトの名無しさん2006/08/09(水) 01:16:46

以上厨房の真夏の恐怖体験でした。
0710デフォルトの名無しさん2006/08/09(水) 01:17:22
>>708
そうね。すまん。
0711デフォルトの名無しさん2006/08/09(水) 01:25:05
>>707は結局何がどうしたいんだ。
0712デフォルトの名無しさん2006/08/09(水) 01:25:07
鮮明に確認した記憶があるのに再現しない。
ゾクゾク(;´Д`)もう寝よ…
0713デフォルトの名無しさん2006/08/09(水) 01:29:35
>>712
お前な、再現もなにも、そもそも何にトラぶってたのかすら誰もわからんままだぞ。
あんだけ一人で騒いでおいて、どんな放置プレイなんだよ。
まあいいや。おやすみ。
0714デフォルトの名無しさん2006/08/09(水) 01:31:45
>>711
外人もいじる多言語ソースだからUTF-8かUnicodeで保存したかった。
ただ9xもサポートしないといけないから必然的にASCII。
UTF-8に勝手に変換され、おかしいからバグレポートしたかった。

MBCSはちゃんと確認した。アセンブラ間違い無く3バイトのUTF-8だった・・・でも再現ではASCIIに変換されてるし…俺軽くやばいのかな?orz
みなさんすいませんでした。もう寝ます
0715デフォルトの名無しさん2006/08/09(水) 01:35:47
あーもう嫌だ。涙がぼろぼろ出てきた。
BOM付けてマルチバイトなのにC2001、C1057が出る。
ソースは晒せないし、、、もう寝る。俺は逃げるぞーーーーー!!!!!!
0716デフォルトの名無しさん2006/08/09(水) 02:24:10
連投スマソ。バグっぽいので最後にまとめておく。未解決。

MBCS、設定なし、両方でUTF-8のまま、変換されない場合がある。UTF-8(unicode?)文字列扱い。そのため_T()使うとエラー。日本語各3バイト(発動条件は不明)
MBCS、設定なし、両方でASCIIに変換してくれる場合もある。この場合はASCIIに変換され、日本語各2バイト。

俺がUTF-8 BOM付きソース、MBCSでASCIIに変換されない場合にしたこと:
そのソースのみUTF-8 BOM付きだったので、すべてのソースをUTF-8 BOM付きに変換。リコンパイル。→失敗。ASCIIに変換されない。

UTF-8は呪われてる。みんな気をつけたほうがいいよ。
0717デフォルトの名無しさん2006/08/09(水) 02:32:55
安心しろ。呪われてるのはお前だけだ。
0718デフォルトの名無しさん2006/08/09(水) 02:39:48
断言してもいいがお前だけだな。
そもそもASCIIに変換されないってどこの段階の話だよ。
0719デフォルトの名無しさん2006/08/09(水) 02:42:59
未確認だがUTF-16でも同じ症状が出た気がする。
多言語扱わないといけない人は一緒に呪われようぜ^^
0720デフォルトの名無しさん2006/08/09(水) 02:45:15
>>718
どこの段階って?頭が朦朧として理解できね。
ASCIIか?確認はデバッガでアセンブラコード確認すると分かる。+_T("")でC2001が出る。
0721デフォルトの名無しさん2006/08/09(水) 02:47:52
よく考えるとWTL使いなんだが、WTLのソースの文字コードの加減ってことはないよな…
0722デフォルトの名無しさん2006/08/09(水) 02:48:28
ないない。
0723デフォルトの名無しさん2006/08/09(水) 02:58:29
お払いしようかな…

printf("り");
100224B4 push offset string "\xe6\xb0\x97\xe5\x85\xa5" (10057580h)
100224B9 call @ILT+4105(_printf) (1001D00Eh)
100224BE add esp,4
0724デフォルトの名無しさん2006/08/09(水) 03:19:31
うわぁやっぱ呪われてる。
↓バグ再現専用別プロジェクト

printf("り");// C2001 or compile error
00415FB8 push offset string "\x82\xe8" (435024h)
00415FBD call @ILT+2710(_printf) (411A9Bh)
00415FC2 add esp,4
0725デフォルトの名無しさん2006/08/09(水) 03:28:55
「り」はUTF-16で 0x308A、UTF-8で 0xE3, 0x82, 0x8A、
Shift-JISなら 0x82, 0xE8、
ひとつもヒットしないっつーか、文字コードがどうあれ、そもそも
"\xe6\xb0\x97\xe5\x85\xa5"の時点でおかしいじゃねーか。
UTF-8にしたって別の文字だぞ。
そもそもなんで6バイト入ってんのさ。


うちだと普通にこうなる。

char a[] = "り";
0041350E mov ax,word ptr [string "\x82\xe8" (415640h)]

wchar_t c[] = L"り";
00413521 mov eax,dword ptr [string L"\x308a" (41563Ch)]

printf("り");
0041352B push offset string "\x82\xe8" (415640h)

wprintf(L"り");
00413542 push offset string L"\x308a" (41563Ch)

ソースコードのエンコードはUTF-8、16、ShiftJISで試したが、全て結果は同じ。
他言語版のVisualStudio使ってるとか、ロケールの設定で何か変なことしてるとか、その辺じゃねえ?
使ってんのが外人のマシンだとか言ったら笑うぞ。
0726デフォルトの名無しさん2006/08/09(水) 03:33:15
>>724
合ってるじゃん。
バグ再現って、どこがバグってんのさ。

それと、エラーが出てビルドが通らないものの
逆アセンブルコードをどこから引っ張ってきた。
0727デフォルトの名無しさん2006/08/09(水) 03:34:41
ソフトは全部日本語VC2003
正常な方はコマンドライン、MBCS
異常な方はATL,WTLばりばりのWinDLL, MBCS (設定なしでも同症状って調べようと思ったら直りやがった。MBCSのままで。まったく同じところに同じソース再現しただけなのに・・・


printf("り");
100224B4 push offset string "\xe3\x82\x8a" (10057580h)
100224B9 call @ILT+4105(_printf) (1001D00Eh)
100224BE add esp,4

もうね。マイ糞ソフト死んでいいよ。
0728デフォルトの名無しさん2006/08/09(水) 03:35:40
>>726
> ↓バグ再現専用別プロジェクト
0729デフォルトの名無しさん2006/08/09(水) 03:45:11
最適化かなんかコンパイラのバグだろ。もうお手上げ。パラメタ晒しておく。

/Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "PROJECT_EXPORTS" /D "_WINDLL"
/D "_ATL_STATIC_REGISTRY" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /Yu"stdafx.h" /Fp"Debug/PROJECT.pch"
/Fo"Debug/" /Fd"Debug/vc70.pdb" /W3 /nologo /c /Wp64 /ZI /TP

/OUT:"Debug/project.dll" /INCREMENTAL /NOLOGO /DLL /DEF:"project.def" /DEBUG /PDB:"Debug/project.pdb"
/SUBSYSTEM:WINDOWS /IMPLIB:"Debug/project.lib" /MACHINE:X86 kernel32.lib user32.lib
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
"\Program Files\Microsoft Platform SDK\Lib\Version.Lib"
"\Program Files\Microsoft Platform SDK\Lib\Kernel32.Lib" "\Program Files\Microsoft Platform SDK\Lib\User32.Lib"
"\Program Files\Microsoft Platform SDK\Lib\Gdi32.Lib" "\Program Files\Microsoft Platform SDK\Lib\WinSpool.Lib"
"\Program Files\Microsoft Platform SDK\Lib\ComDlg32.Lib" "\Program Files\Microsoft Platform SDK\Lib\AdvAPI32.Lib"
"\Program Files\Microsoft Platform SDK\Lib\Shell32.Lib" "\Program Files\Microsoft Platform SDK\Lib\Ole32.Lib"
"\Program Files\Microsoft Platform SDK\Lib\OleAut32.Lib" "\Program Files\Microsoft Platform SDK\Lib\Uuid.Lib"
"\Program Files\Microsoft Platform SDK\Lib\odbc32.lib" "\Program Files\Microsoft Platform SDK\Lib\odbccp32.lib"
0730デフォルトの名無しさん2006/08/09(水) 04:12:27
VS2005でhypotやstrcmpなんかで
warning C4996: 'hypot' was declared deprecated
warning C4996: 'strcmp' was declared deprecated
Message: 'The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strcmp. See online help for details.'
と、警告が出ます。
もうCの関数は使わないほうがよいのでしょうか?
GCCではアンダーバーをつけると怒られそうな気がします
0731デフォルトの名無しさん2006/08/09(水) 04:54:58
>>730
警告に出てるまんま、POSIX名の関数じゃなくって
ISO C++標準の関数を使えってだけのことだから、普通は大丈夫。

といいたいところだけど、一部引っかかる場合はある。
基本的には従うべきだけど、引っかかったらご愁傷様。
07326832006/08/09(水) 09:25:27
宜しくお願いします。
0733デフォルトの名無しさん2006/08/09(水) 10:26:05
100くらい前からVC2003コンパイラのバグ書いた奴です。
そういえばこのエラーの前にも不可解なエラーに遭遇しました。関係あるかも。

test.cpp
/*__declspec(thread)*/ TCHAR szText[100];//グローバル変数
test.h
/*__declspec(thread)*/ extern TCHAR szText[100];//グローバル変数
func () { szText[0]=NULL; }

でヘッダからszText参照するとアドレスが0になって参照できなかった。コンパイラはエラーワーニング無し。例外で落ちる。
リビルドしてるから関係無いかもしれない。

(´-`).。oO(VC2005に移行したほうがいいかもしれん。2005は快適?)
0734デフォルトの名無しさん2006/08/09(水) 10:27:51
>>733
訂正。
__declspec(thread)付けた場合、szText[0]の場所が0になる。コメントアウト。
付けない場合は正常。問題無い。
0735デフォルトの名無しさん2006/08/09(水) 10:34:38
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \
     (゚∀゚)
     ノヽノヽ
       くく
   そうだ!あきらめよう!
0736デフォルトの名無しさん2006/08/09(水) 10:37:01
>>735
出来るならそうしたい…orz
ちなみにこの0x0000例外問題はASCIIでテキストを保存してた頃。UTF-8のソースは1つもない。
上2つの問題はデバッグでコンパイルしているから、最適化はやっぱ関係ない。

ゲロゲロ…
0737デフォルトの名無しさん2006/08/09(水) 10:48:49
クラスの中から確か参照してたような。

class CClass {
func() {szText[0]=NULL; }
}

ボスケテ
0738デフォルトの名無しさん2006/08/09(水) 12:04:03
紛らわしいので2003 の話は別スレッドでやるか、毎回2003であることを明記してほしい。
うっかり読んじゃって時間を無駄にしちゃうから。
0739デフォルトの名無しさん2006/08/09(水) 12:53:33
つーかここVisual Studio 2005スレなんですけど…
0740デフォルトの名無しさん2006/08/09(水) 12:55:41
2003も2005もコンパイラそんなにバージョン違わないだろ…2005もきっと…

Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
0741デフォルトの名無しさん2006/08/09(水) 13:05:46
.NET 2003はVC++ 7.1 (MS C++ 13.1)で、2005はVC++ 8.0 (MS C++ 14.0)。
0742デフォルトの名無しさん2006/08/09(水) 13:10:46
そんなことは知ってるがそんなに違うのか?
2003/04/01 20:11 933,888 c1.dll
2003/04/01 20:11 2,207,744 c1xx.dll
2003/04/01 20:11 1,867,776 c2.dll
2003/04/01 20:11 86,016 cl.exe
0743デフォルトの名無しさん2006/08/09(水) 13:39:22
VC7.1は、微妙な点において変だったりする。
いやまあ、テンプレートテンプレートパラメータなんて、
あまり使わないだろうけど。
0744デフォルトの名無しさん2006/08/09(水) 18:55:44
>>733-734
どうして__declspec(thread)を外すなんて思考に行き着いたのかは知らんが、
そんなもんが付いてる以上は、それってTLSだろ?
ブチ落ちてたのはDLLの中の話だったりしないか?
ランタイムで後から読み込んだDLLの中で__declspec(thread)使ってると
オブジェクトの内容なんか保証されないぞ。
http://msdn2.microsoft.com/ja-JP/library/2s9wt68x.aspx
の一番最後のところだ。

__declspec(thread) char sz[1000];
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
for(int i=0; sizeof(sz)/sizeof(sz[0])>i; ++i) sz[i] = 0;
return TRUE;
}

こんなDLLをLoadLibrary()するだけで落とせる。
落ちない可能性もあるが、いずれにせよsz周辺のメモリは確保なんかされてないので、
動いててもただの偶然だ。
0745デフォルトの名無しさん2006/08/09(水) 19:04:44
自分のプログラムの不備を棚において、コンパイラのバグと騒ぎ立てるような奴が、
C++でスレッをド使ってる時点で既に自殺行為。
こいつがアップしてるコードでバグが再現したためしはない。バグだといいたいならちゃんと再現するコードをアップしろ。
0746デフォルトの名無しさん2006/08/09(水) 19:18:22
>>745
何かの釣りなのだろうか。
0747デフォルトの名無しさん2006/08/09(水) 19:21:16
UTF-8に関するレスの人とTLS の仕組みも知らないで自爆してる人って同一人物ですか。
だったらしばらく控えてくれると、ここに1人喜ぶ人がいます。
0748デフォルトの名無しさん2006/08/09(水) 19:32:54
>>747
いちいち下らんこと書き込むな。
読み流せ。
0749デフォルトの名無しさん2006/08/09(水) 19:42:45
>>744
参考になった
0750デフォルトの名無しさん 2006/08/09(水) 20:50:25
求むレポ

VS2005で最良のレポート開発環境は?

有料(10万まで)、無料問わず

・DB接続可
・バーコード出力可
・デザイナツール

VS2005Proでクリレポ使ってんだけどデザイナもイマイチ使いづらく
実行時に結構(30〜50MB)メモリ食っている模様

んでTureWinReports(グレープシティ)を使ってみたらデザイナも結構使いやすく
実行時のメモリ食いが15MB程度

これにしようかと思ってるけど、より良いツールがあったら詳細キボン
0751コンパイラバグ、__declspec発端人2006/08/09(水) 20:54:09
__declspecは俺が間違ってる。
単にdll何回か呼び出されるだろうから変数の値共有されるならヤバイ。
ここみて
http://www.sado.co.jp/system/taka/TLS/
> __declspec( thread ) int iVal;と書けば良いだけである。
でその後読んでなかった。スマソ。>>744とても参考になった。

ただコンパイラバグは別だぞ。あれはやばい。手元のソースでも再現したりしなかったりだけど。
■ このスレッドは過去ログ倉庫に格納されています