Visual C++ 2005 Express Edition 質問箱
1 :
デフォルトの名無しさん :
2006/02/25(土) 03:48:36
3
3 :
デフォルトの名無しさん :2006/02/25(土) 05:37:54
Visual C++ 2005 Express インテルコンパイラ Visual C++ ver 6 だとどの位速度が違いますか?
魔法の呪文、相手は猿だ、相手は猿だ。
DLLって作れるの?
7 :
デフォルトの名無しさん :2006/02/25(土) 16:40:57
OpenMPを使用しようと<omp.h>をインクルードしたのですが、ファイルが見当たりません。 OpenMPはVC++上ではどのように使うのでしょうか?
8 :
デフォルトの名無しさん :2006/02/25(土) 16:44:11
9 :
デフォルトの名無しさん :2006/02/25(土) 16:44:47
必要と判断したから利用したいのであって お前の其の意見はなんら意味を成さない はい次の回答者どうぞ
>>10 omp.hが使いたいならどっからか手に入れて来い。
俺は/openmpでOpenMP使うから。
12 :
デフォルトの名無しさん :2006/02/25(土) 23:27:20
【アプリ】開発 MS Visual Studio.NET 2003J_Enterprise_Developer+MSDN_Subscription_Library_2003_DVD.ISO 99bc41080dbb75627a42f49a6f9d4c32 Visual Studio2005 pro cd1.iso 1751131ab20a94b99b10a778dd12503c Visual Studio2005 pro cd2.iso a108b54c6b4c36662f05737052aaa5e3 (アプリ)MSDN_Libraly_for_Visual_Studio_2005_Japanese.iso 52d526b13fdda0b52fd141871eeb47f3
現在XPで VC++ 6.0 をつかっているのですが、動作が不安定なんです。 ここに VC++2005EEをインストールしても大丈夫でしょうか?
インストール自体は大丈夫だが、VC6が不安定な理由が 不明なままではVC2005も不安定になるんじゃない?
>>13 あ、XPでVC6使うとたまにいじってたソースを真っ白にされたりしない?
そういうのじゃない?
俺もXPにしてからVC6の動作に不満爆発だったのを覚えているけど、
かなり昔のことで、それがなんだったのかよく覚えて居ないw
つーことは検索してみればそのへんの記述があるかもしれんな。
一応、インスコできるようにSP2アップデートしました
>>15 私の場合、リンクやらコンパイルで反応がなくなるんです
普通に閉じれないから taskManager で強制終了
20 :
デフォルトの名無しさん :2006/02/26(日) 09:22:36
>>6 DLLのチェックボックスがべた塗りになって選べないんですけど、
C#のようにコマンドラインで作るんですか?
21 :
デフォルトの名無しさん :2006/02/26(日) 13:34:49
ねぇー、vc8ってtypeof使えるの
22 :
910 :2006/02/26(日) 19:32:30
VC8なんですが、CLR→Windowsフォームアプリケーションで作成した 現在編集中のファイルを別名で保存できないんでしょうか? ビルドしてしまうと、ソースが変わってしまうんですよね(当然の事だが)
cppで関数宣言してるにもかかわらず、 「定義へ移動」が「宣言へ移動」と同じ動作になるクラスがある。 何だろうな・・・これ。
>>21 使えるわけないだろ。gccの拡張構文なんて。
これからは、C++でもWindows Formsを使うのが主流になるんかね。 どうもネイティブアプリで、.NET Frameworkが必要になるのには、抵抗があるんだが・・・
.NET依存は仕方ないにしてもMSDNのサンプルがc#とVBしかないのが腹立つ。 c++のサンプル出せー
>>26 DVD-RAMって何さ。勝手に変なものを作るなよ。
DVD自体まだよくわからない代物のくせに。
VC++ 2005 ExpressでC++/CLIするときのチュートリアルが載ってる サイトってないですか? ダイアログボックス出して「Close」と書かれたボタン押すと終了するくらいの サンプルソフトについて、新規プロジェクトの作成〜フォームエディタ(?)の 使い方まで全部書いてあるようなのがいいです。
31 :
デフォルトの名無しさん :2006/03/05(日) 23:28:10
VisualStudioはこのExpress Editionをはじめて使うんだけど VisualStudioで作成したアプリケーションは.Net Frameworkがないと動かないの?
うい
んなこたーない
作り方による
うむ。的確なアドバイスだ わたしが出るまでもなかったな
36 :
31 :2006/03/06(月) 13:40:05
調べていてなんとなくわかりました。 多分ネイティブとマネージがあるってことですね。 しかしどうしてもVC++Expressで作成したDLLが NetFrameworkのない環境では動いてくれないのです。 (Platform SDKを入れた後) 新規作成->プロジェクト->Win32コンソール->DLL という手順でプロジェクトを作成し、 ごちゃごちゃと関数を書き、DEFファイルでエクスポートしました。 これでビルドしたDLLは、.NetFrameworkでは動いてくれませんでした。 この手順だけではネイティブなDLLにならないのでしょうか?
訂正: >これでビルドしたDLLは、.NetFrameworkでは動いてくれませんでした。 これでビルドしたDLLは、.NetFrameworkなしでは動いてくれませんでした。
>>36 プロジェクトのプロパティを確認してみろ。
どうせ/CLRが有効になっているだろ。
vc8のランタイムがない落ち
Win32コンソールでもランタイムっているの?
これATLとかついてないん?
>>40 静的リンクすれば不要。
>>41 Expressそのものには付いていない。
43 :
デフォルトの名無しさん :2006/03/06(月) 16:41:57
質問なんですが、WIN32APIを使ってC言語でアプリ書きたいんですが、2005Express でも可能なんですか? ダイアログをリソースエディタで作りたかったんですが、WindowFormとかわけわか らんものだし、作ってみるとC++だし。 今までのように、.cとか.rcとかでアプリが組めると思っていたんですが、 この方法はすでにレガシーなんでしょうか(ToT) 25さんの発言が気になるます。
>>43 まずリソースエディッタがない。
逆に言うとそれさえなんとかすればできる。
>>43 今までダイアログをリソースエディタで作っていたなら、そのリソースエディタを
使えば、今まで通りにできる。ただしWIN32APIをつかったアプリを作るには、
Platform SDKが必要。
マイクロソフトのHPに詳しいやり方が書いてあったはずなので、探してみるといい。
46 :
43 :2006/03/06(月) 18:05:23
SDKは必要とあったので、ダウンロードしました。 (2005はSDKなしでも使えるってことですか?) 新人にSDKでWINアプリ作らせたいと思ったわけなんですが、 いざ2005Express起動してプロジェクト作って愕然・・・ リソースエディタって、独立してないじゃないですか。 うーむ、困ったな〜。
質問です。 プログラムをビルドして実行させると Dos画面出るんですがすぐに消えてしまうのです どうしたらそのままDos画面がでてくるんでしょうか? あと/の横の/の反対verがでません、どうしたらでるんでしょうか?
>>47 >どうしたらそのままDos画面がでてくるんでしょうか?
出てこないんですか? 出てきてすぐ消えるんですか?
後者なら、プログラムが終了したから消えるんです。
>あと/の横の/の反対verがでません、どうしたらでるんでしょうか?
'\'のことですか? 普通に出ますが。
>>46 う〜ん、ちょっと読み違えたか。てっきり.rcとか書いてあったので、エディタで編集して
コマンドラインからコンパイルする環境をさしていると思った。
別のリソースエディタでリソースを書いたら、それだけコンパイルして
expressのプロジェクトで、リンクすればいいんじゃないかと思うけど。
ヘッダを取り込めば、使用に関しては問題ないかと。
リソースエディタから、変数の追加とかはできないけどね。
50 :
43 :2006/03/06(月) 20:39:58
>>49 タン
いぇ、こちらこそ説明不足ですいませんです。
あれから調べてみて、英語だけどフリーのリソースエディタというのがある
こととをハケーンしました。
これで.rcを置くだけでコンパイルしてくれるみたいですね。
でも、フレッシュマンにあれこれツールを使わせると、脳から煙がでてきそ
うなので、VC6インスコさせようかと悩み中です。
とにもかくにも、情報ありがとうございました。
51 :
36 :2006/03/06(月) 22:26:35
>>42 まさにそれでした。
プロパティで「ランタイムライブラリ」を/MTに変えてやったら普通に動いてくれました。
ランタイムを静的リンクにしてやらないといけなかったんですね。
付き合って頂き有難う御座いました。
修正する文字列 AdditionalDependencies="kernel32.lib" 修正後の文字列 AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib" ここ前とちがくね? 修正はいった?
53 :
デフォルトの名無しさん :2006/03/07(火) 10:01:40
Debug版のmallocでアプリ毎落ちるんですが、他にそんな人いませんか?&解決法知りませんか? エラーメッセージも出ません。
mlock.c@262行 /* * Check if CRT is initialized. The check if _crtheap is initialized * will do the job. More over we had to add this test in initlocks because * in debug version we don't endup calling lock before calling malloc_base, * where we check for crtheap. */ if (_crtheap == 0) { _FF_MSGBANNER(); /* write run-time error banner */ _NMSG_WRITE(_RT_CRT_NOTINIT); /* write message */ __crtExitProcess(255); /* normally _exit(255) */ ↑ ここのチェックでひっかかってるみたいです。 エロい人ボスケテ!
自分の書いたソースの方を載せろよ。
ライブラリのバージョンが違うんじゃね?
>>54 事故解決しますた
crtの初期化でひっかかっていたみたいです。エントリポイントの再設定で直りました。
ありがとうございました。
warinig なんだけど C4819 というのが出る。ansi の文字で表示できないのがあると いうのだけれど、具体的に何の文字か分かりませんか。 自分では呼んでないんだけど mmreg.h というのが include されたときも出る。
>>58 該当ファイルをバイナリエディタか制御文字をハイライト表示できるエディタで見てみればいいだろ。
俺は面倒なんで #pragma warning(disable:4819) ってやってる。 今のところ不都合は無し
自己解決しました。
62 :
58 :2006/03/08(水) 13:55:36
>>59-60 レスをどうも。mmreg.h をプログラムを組んで調べたら、コメントの中で
ドイツの会社らしい名前の尻に 0xFC が1文字あった。他は表示可能文字と
\t, \n, \r だから、これでしょう。
>>62 「Unicode 文字セットを使用する」
→「マルチ バイト文字セットを使用する」か?
>>63 非ascii文字があるということ。日本語 code page 932 で読めないと言っている。
>>64 で挙げてある発言の DirectX d3d9types.h でも、コメントの中なんだけど
'C' とかやるところを、先行するアポストロフィーが 0x91 で後のは 0x92 に
なっている。("FOUR_CC"の語がある行)
よその国では問題ない現象なんでしょう。コメントなのに人騒がせ。
環境変数 TZ=JST-9 でmktimeをすると、夏時間計算をされちゃうのは ライブラリのバグ?
69 :
デフォルトの名無しさん :2006/03/12(日) 16:29:20
Microsoft Visual C++ 6.0と、Visual C++ 2005 Express Editionとは、 どう違うのですか? くだらない質問ですみません。
>>69 Visual C++ 2005のコンパイラはVisual C++ 8.0相当。
Express Editonは数あるエディションのうち最下位のもの。
無料だけど機能制限も多い。たとえばリソースエディタが無かったりMFC/ATLがなかったりするなど。
Expressより上位のエディションにはStandard, Professional, EnterpriseとVC++6でもお馴染みのものがある。
71 :
69 :2006/03/12(日) 16:55:49
Releaseで出力したexeを開いたら、最後になにかXMLを吐いているが、これは消せるのか?
73 :
デフォルトの名無しさん :2006/03/12(日) 21:05:06
質問なら上げようや(・∀・)
DELETE *.xml
75 :
デフォルトの名無しさん :2006/03/12(日) 23:50:50
visual C++ 6.0ProfetionalEditionでC言語を勉強してて、そんで 新規プロジェクトでいつも空のコンソール選んで、逐一Cのソースを プロジェクトに追加してたのですが、VisualC++2005ExpressEdition だと、どうしたら良いのでしょう? それとも、元のvisual C++ 6.0ProfetionalEditionで、学んだ方が良いのでしょうか?
77 :
デフォルトの名無しさん :2006/03/13(月) 00:13:26
えっと、いつもは空のプロジェクトに新規ファイルでCのソースをプロジェクトに追加 という形でしてたのですが、まず新規ファイルの名前がつけられないし かつ、プロジェクトに追加するかしないかの選択画面も無いので 新規作成であるファイルタイプは.cppと.hしかないし オンラインヘルプを見てもC++メインの事柄が多く、C言語の場合 等が見受けられないです。(ヘルプでのヘッダや関数の解説はC/C++両方充実してる となんとなく思いますが) ただ、C++6.0でヘルプが使えないのに対し、こちらは ヘルプも豊富なので、できればExpressEditionを使いたいのですが 例えば、ヘルプだけを、C++6.0に移植するなんて事が出来れば 良いのですが、まだまだ知識不足と仕様の理解が出来てないので いまいちわからないです。
VC++ 2005だとファイル→新規作成→プロジェクト、 その中からWin32コンソールアプリケーションを選ぶ。 プロジェクト名を書いてOKを押すと、ウィザードが出てくるが、 気にせず完了を押すとプロジェクトが出来てコーディングできる。 最初からいくつかファイルがあるのが嫌なら、 ウィザードでアプリケーションの設定の中から空のプロジェクトにチェックを入れるとよい。 ファイルタイプで.cppと.hしかないというが、 .cppを選んで実際のファイル名をhoge.cのようにすればよい。
>>77 cppファイル新規作成で、
ファイル保存する時に、"hoge.c"というふうにすればオケ
>>78 ,79
hoge.cケコーン(・∀・)人(・∀・)
>>77 さん
>>78 さん
丁寧な説明ありがとうございます。
無事に、以前の環境と変わりなく(知識の深い人だと相違点は多々あるのでしょうが)
勉強に励むことができます。
助かりました。
83 :
デフォルトの名無しさん :2006/03/13(月) 07:31:18
私、アセンブラ、組み込みCの技術者なのですが、 個人的に、Visual C++ 2005 Express Editionを 勉強したいと思っております。 マニュアルは、洋書では見つけましたが、日本版は ないのでしょうか? あと、Visual C++の勉強に最適な本がありましたら ご教授ください。
俺は、英語のスキルが身に付く良い機会なので英文のヘルプは英文で 読解しようと思ってる。 だから、83>>さんも、そうしてみては?
Visual C++ 2005 Express Editionを勉強って リバースエンジニアリングですか?
86 :
83 :2006/03/13(月) 18:30:33
>>85 いえいえ、Visual C++ 2005 Express Editionの使い方をマスターしたいだけです。
それはつまり鉛筆とノートの使い方のマニュアルを探していると言うことか?
なにをやりたいのか明確でないので、漠然とした回答になるけど あんまりマニュアルとかは、必要ないんじゃないかと思うよ。 通常は操作の仕方がわからなくて、ビルドできないってことはあまりないし。 とりあえず、まず使ってみたら。んでわからないところは、google先生に 教えてもらうといいよ。
なんでもいいから作ってみないことには始まらないな 解説書や解説サイトを順を追って見ていくのもいいが、そればっかりじゃ飽きるしな
質問なんですけどVisual C++ 2005でWindowsプログラムを作ろうと思ったのですが、 Visual C++ 2005のincludeの中にwindows.hがありませんでした。 これはもともと無いものなんでしょうか?それてもセットアップに失敗しただけなのでしょうか。 もし前者のほうでしたらVisual C++ 2005でのwindowsプログラムの作れないのでしょうか? 作れるのであればその方法を教えてください。お願いします。
91 :
90 :2006/03/14(火) 21:37:27
どなたか90をお願いします。
標準ではない。自分SDK落とせ。
93 :
デフォルトの名無しさん :2006/03/14(火) 21:43:49
Platform SDKいれた?
>>92-93 入れようと思ったのですがページが英語のため無料なのか有料なのか分かりません。
どっちなんでしょうか?
あなたのような人には有料も同然なので、VS2005Stdを買いなさい。
>>94 クレジットカードの番号を入力する欄が現れなければ無料だと思え。
次の質問:platformsdkをインストールしたけど、windows.hをインクルードするとエラーになる その次の質問:char*とconst wchar_t*に互換性がないとか言わるんだけど その次の質問:_MessageBoxA@16が見つからないと言われてリンクできません その次の質問:afx.hをインクルードするとエラーになります
教えて厨は(・∀・)カエレ!
10 分と待てないとは余裕が無いな。 ゆとり教育の成果はイマイチか。
具体的なエラーメッセージ書いたら?
101 :
デフォルトの名無しさん :2006/03/15(水) 02:39:06
あのさ、
>>97 は次の質問を予測して小ばかにしてるだけにしか読めない。
まさか、本当に質問してると解釈した香具師いないよね?
104 :
デフォルトの名無しさん :2006/03/15(水) 11:57:09
visualC++2005でwindowsプログラムをコンパイルできません。 ソースは猫でもわかる...のサイトからとってきたので間違いはないと思います。 SDKは入ってますしパスも通しました。何がおかしいのでしょう?
お前の頭がおかしい
猫でもわかるは2005に対応してない
>>106 そうなんですか。分かりました。ありがとうございました。
>>104 .net 対応とか説明がある。ちょっと似ているが、足りないことが多い。
Visual C++ 2005 でぐぐって説明を見たらどうか。
オレも出来ているから出来ないことはない。
なにをしてどうなったかを言わないとレスがつかないでしょう。
109 :
104 :2006/03/15(水) 12:32:14
>>108 ttp://lets-go.hp.infoseek.co.jp/c_setting09.html パスの通し方やコンパイルの仕方はこのホームページに書いてあるとおりにしました。
エラーメッセージは
error C2440: '=' : 'char [6]' から 'LPCWSTR' に変換できません。
error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [6]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
error C2664: 'MessageBoxW' : 2 番目の引数を 'const char [25]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
という感じです。
Visual C++ 2005で「Hello World」を赤色で表示することを意図してwindowsプログラムを作ったのですが、出来上がったwindowsプログラムを実行してみると赤色で意味のわからない文字が書かれていました。 どうすればちゃんと文字を表示できるようになるでしょう?
>>112 エスパー伊藤さん出番ですよ〜
TextBoxならばフォントに変なのを設定してるんじゃない?
その説明じゃエスパーじゃないとわからんよ
114 :
デフォルトの名無しさん :2006/03/15(水) 15:13:23
>>113 フォントは設定してません。
状況は
char *szStr="Hello World\t"; // szStrという変数を作る
TEXT(szStr), //DrawTextEx関数の2番目の引数をTEXTでキャストして表示しようとしている。
こんな感じです。
115 :
114 :2006/03/15(水) 15:18:57
>>114 の5行目のTEXT(szStr),は(LPWSTR)szStr,の間違いです
ヒント UTF16
>>115 LPWSTRとな、UNICODE使ってるんかいな。ポインタキャストしても中身までは書き換わらない。
TCHAR *szStr = _T("Hello World");
119 :
114 :2006/03/15(水) 17:16:59
>>118 のやり方をやろうと思ったのですか、できません。
メニュー「プロジェクト」-「プロパティ」-「構成プロパティ」-「全般」-「文字セット」
↑ここのプロパティがありません。どなたかご伝授ください。
そこの111のサイト変な仕掛けがあるから見ない方がいい
121 :
デフォルトの名無しさん :2006/03/15(水) 19:42:01
>>103 で、このていたらくだ。教えて厨をなめすぎ
VisualC++ Expressでコーディングを行っていたのですが、 ある時から新規に作成したC++ファイルがCtrl+F7のコマンドで ファイル単体のコンパイルができなくなりました。 (F7などのソリューション全体のビルドだとコンパイル可能) 具体的にはCtrl+F7のキーを押しても新規のC++ファイルだとプログラム に問題が無くても全く反応せず、上のツールバーの「ビルド」欄でも 「コンパイル」だけが表示されていません。 新規ではない既存のファイルは単体でコンパイル可能です。 よろしければ問題解決のためのアドバイスを頂けませんでしょうか。
125 :
124 :2006/03/18(土) 13:47:10
自己解決しました
126 :
デフォルトの名無しさん :2006/03/18(土) 14:06:24
どうやって解決したのかマルチポストした全てのスレに掲げるのがマナー
127 :
124 :2006/03/18(土) 14:06:52
うぉ、誰かが既に自分の代わりに書き込んでる! その通りっす、自己解決出来ました。 125さんわざわざどうもありがとうっす!
128 :
124 :2006/03/18(土) 14:08:45
>127 うわー、すみません!知らんかったよ!以下自己解決の内容っす。 今一度VusualC++ EXpressを再度起動させ、その後しばらく放置してみたら コンパイル出来るようになっていました。 その前にもプログラムの再立ち上げはしていたのですが、その時は治らず、 ここの掲示板に書き込むためにVisualC++を放置してたのがよかったのかも? (VisualC++が対象ファイルのなんらかのパラメータを書き換えるために若干のタイムラグが必要だったとか?)
129 :
http://www.vector.co.jp/soft/win95/util/se072729.html :2006/03/18(土) 18:29:20
TextSS の64bit化おながいします もしくは64bitにネイティブ対応した置換ソフトないですか?
マルチ氏ね
WINDOWSで文字列を扱うときはTCHARとTEXT()マクロを使うのがお勧め。と、軽く読んでて思った。
(char *)p + offset って表現を (_TCHAR *)p + offset に置換して UNICODE ベースにしたつもりが (_TCHAR *)((char *)p + offset) にしないといけないところがあって 旧悪露見、 winXP でフリーズだわ。 ctrl+alt+delete もすぐには効かない。 winXP でも不正なアドレスを読みに行くと ok じゃないんですねえ。もっとしっかり していると思った。
offset が余程大きくない限り、そこは多分 OS にとっては不正なアドレスじゃあないだろう
>132 間違いなくそれはプログラミングのミスによるバグ。プロセスはOSに許可されている データ領域内でアクセスしているだろうから、OSは関知しない。 自分も似たような例ではまった事がある。強制終了もしなかったからバグが噴出するまでぜんぜん気づかなかったけど。
135 :
132 :2006/03/19(日) 23:29:11
>>133-134 お付き合い下さり有難うございます。
HGLOBAL を得るのに、0x00B700AC などが通常なのに、0x03FCDD60 などと
出てくる。かなりチェック文を入れたけど、こうなったら1行毎にチェック
ですかね。ミスが見つかったらなんだということになるでしょうねえ。
>>132 それはpの初期化が不正なんじゃないの?
>>136 そうかも知れない。有難うございます。
夕べ1つ見つかった。領域定義で数字の打ち込みミスがあって領域が不足していた。
ノートPCで文字が小さくて見落としていた。明朝が敗因か。
こうなったらポインタも全部最初に =NULL。
いやあのさ、まずどこがバグの根本の原因か見つけたら? ポインタ全部最初に =NULLで一見収まったとしても、 バグのあるところをまた前回の値とかが入ったまま通ったら 悩むことになるだろ。 今の状態はバグが再現する非常にありがたいシチュエーション じゃないか。
>>138 ご忠告有難うございます。レスが遅くなり申し訳ありません。
起動状態で様子が違うようです。小さいテスト・データを作って追ってみたいと
思います。今は4500行の文書でちょっと小回りが効かない。
コンソール出してわざとバグ組み込んでprintfデバッグ。 別に出力先はコンソールでなくてもファイルでもいいから実際の出力ファイルに デバッグ出力が重畳するような形で出力させて自分の思った通りの内部動作を しているか確認するという手段もある。 (各ブロック毎に固有の文字列を出力させるようにすればどのブロックを実行しているかも 分かるようにできるんだし。デバッガでいちいち追うよりは楽じゃないかな?) C++に限らずほぼどんな言語でもこの方法は使えるはずだし、やっている人も少なくないと思う。
ウィザード使うと、Form1.hにどんどんコード書かされるんだけど ヘッダファイルにコード書くってC++/CLIだと普通なの? それとも、これはVC++の文化でMFCのときから? 使ったことないから知らんが。
>>140 これは私へ? 有難う御座います。
DOS 時代から機能を追加してきた愛用のユーティリティでメニュー項目が150位
あるやつです。デバッガーで追うとメニュー指定までエラく手間がかかったりする
ので、メニューで呼んで以降トレースしています。fopen("err.txt", "a+") で
開いていつコケテもログが残るように。実際は fopen() でなく winAPI ですが。
お騒がせしております。 IsTextUnicode() が真だったり偽だったりしたもので、wvsprintf() の結果を hex で打ち出しているうち、IsTextUnicode() に渡す文字列の長さが文字数に なっているのを見つけました。* sizeof(_TCHAR) を掛けて処理が中断しなく なりました。IsTextUnicode() 自体テストで入れたもの。ミスの追加だった。 いろいろ有難うございました。
144 :
デフォルトの名無しさん :2006/03/22(水) 20:41:21
VISUAL STUDIO.NETで作ったプログラムを2005に 持って行ったらC++はintを規定値としてサポートして いませんになります どうしたらいいですか?
>>144 コンパイラ様に気に入っていただけるように修正すればよかろう。
>>144 とりあえず、明示的に int を書き加えればいいとおもうよ。
148 :
144 :2006/03/23(木) 01:29:43
main()を int main()にしたら直りましたー dクス
M$で express が付くと嫌な予感がするけど代ジョブですか??
>>149 ATL/MFCとリソースエディッタがないほかは全く問題ない。
151 :
デフォルトの名無しさん :2006/03/23(木) 18:39:30
日本語のヘルプ付いてないの?
エンタープライズだって英語混じりじゃねーか
ExpressのC++版って売ってないよね?
2月発売のはずだが店頭に並んでないの?
パッケージ版があるのはVBのみ
Visual Web Developerもあったよ。
Windowsフォームアプリケーションで 適当なコントロールのbackgroundimageにBMPファイルを 表示させるとコンパイルはできるけど、実行エラーになる。 なして・・?
エラーメッセージくらい書いてくれてもいいんじゃまいか?
159 :
側近中の側近 ◆0351148456 :2006/03/24(金) 08:33:38
(っ´▽`)っ VS2005になってまでVC++使わなくてもいいじゃない・・・。
161 :
側近中の側近 ◆0351148456 :2006/03/24(金) 09:04:18
それはないww
適材適所
てか、ちょっとしたものにはC#。 ガッツリ作りこむ場合はVC++って使い分けてる
Xbox360もC♯になっちまったな 文字通り箱ものだから出来ることだけどさ
C++/CLI 使って仲良くしようぜ。
>>165 それホント? 箱の仕事探してくるよ!
いや、3.0 が動くようになってからにすっか
VC++.net Standard 2002版なんて投げ捨ててExpress使うほうがマシですか?
2002は地雷
どう地雷なのよ。 いや、VS.NET は 2003 しか使ったこと無いから、 何が地雷なのかマジでわからん。
急行と鈍行と無料以外にどの辺が違うわけ? どこ行けば判る?
>>171 最適化がうんぬんとかの予感。
VS2005から開始した場合、VisualC++は2005対応の書籍が無い(あるかもしんないけどVC自体少ない)ため、
2003のやつで頑張る感じになるくさい。
array<String^>^ a={"a","b"}; のとき a を {"@a","@b"} にしたいとします。 このとき、 for each(String^ s in a){ s="@"+s; } としても、aは変更されません。 for each でもとの配列の値を変更することってできますでしょうか?
>>173 参照にすればよい。
for each (String^% s in a) {
s = "@" + s;
}
175 :
173 :2006/03/25(土) 09:58:02
回答ありがとうございます。 その方法で a が変更されることを確認しました。(↓こんな感じ) >array<String^>^ a=System::IO::Directory::GetFiles("C:\\","*.*"); >for each(String^% s in a) >{ > s=System::IO::Path::GetFileName(s); >} しかし同じ事を一旦、ArrayList に入れてからやろうとすると、 'System.ArgumentException' のハンドルされていない例外が mscorlib.dll で発生しました。 追加情報: パスに無効な文字が含まれています(↓こんな感じ) >array<String^>^ as=System::IO::Directory::GetFiles("C:\\","*.*"); >ArrayList ^al=gcnew ArrayList; >al->AddRange(as); >for each(String^% s in al) >{ > s=System::IO::Path::GetFileName(s); >} 一旦、ArrayList に入れてるのは、実際には再帰的に GetFiles を呼び出して、サブフォルダ内の すべてのファイル名を ArrayList に入れているからです。 なんで、ArrayList に入れるとエラーが発生するんでしょうか?
>>175 ArrayList内部ではObject型の配列を持っているから。
for eachでString^%としてしまうと、要素のObject^を無理矢理String^と見做してしまうということになるから駄目なのだろう。
解決するには、1つ目の方法として、Object^%でループすること。
for each (Object^% o in al)
{
o = System::IO::Path::GetFileName(static_cast<String^>(o));
}
2つ目にジェネリックコレクションを使うこと。
System::Collections::Generic::List<String^> al;
for each (String^ s in as)
al.Add(s);
for each (String^% s in al)
{
s = System::IO::Path::GetFileName(s);
}
コマンドプロンプトを開くときに自動的にvsvars32.batを実行するようにするにはどうしたらよいのでしょうか?
vsbars32.batを呼んでからコマンドプロンプトを開くバッチファイルを作れば良いだけだろw ていうか普通に環境変数設定した方が楽。
179 :
173 :2006/03/25(土) 22:23:33
>>176 レスありがとうございます。
一番目の方法はなぜか、alの中身が書き換わりませんでした。
わたしのソースが悪いのかな?
二番目の方法なら、GetFileNameの結果を別の
ArrayList に入れていけばいいので % を使う理由が
なくなってしまうので、もう少し一番目の方法を
調べてみたいと思います。
新しい配列を作った方がいいのでは?
ダイアログでcallbackをRegisterClassExで登録したのを使ってるんですがよいのでしょうか? 初心者のサイトに載ってるのだとcallbackが2に分けてあるんですが ウインドウはダイアログひとつで別に作らないほうが楽な気がするのですが バグを含んでるんですか?
>>179 そこでRefactor! の出番ですよ。
リフレクター!じゃないよ。リファクター!だよ。
俺も綴りに自信がないけどね。
184 :
側近中の側近 ◆0351148456 :2006/03/27(月) 00:04:36
(っ´▽`)っ
C++言語開発者「C++の重要性は高まっている」
ttp://pc8.2ch.net/test/read.cgi/pcnews/1114438361/858-859 858 名前:側近中の側近 ◆0351148456 [] 投稿日:2006/03/26(日) 23:57:22 ID:KFoC3+lK
(っ´▽`)っ
VSの開発でどうしてVC++使うの?
どうせならC#使えばいいのに。
どうしてもC++である必要があるならBorland使おうよ☆
859 名前:側近中の側近 ◆0351148456 [] 投稿日:2006/03/26(日) 23:59:46 ID:KFoC3+lK
(っ´▽`)っ
VB + VC++ = VC# ?
185 :
側近中の側近 ◆0351148456 :2006/03/27(月) 00:09:58
(っ´▽`)っ 自分の発言を晒し上げ☆
なんでタダなんですか?
囲い込み。
applicatoinSettings-propertyBinding の使い方について解説してる サイトないですか?全然使い方がわかんね。
>>182 あんまり良くない。似ているけれど型が違う。
RegisterClassExで登録する方はウィンドウプロシージャ。LRESUST CALLBACK (HWND, UINT, WPARAM, LPARAM)型。
ダイアログのはダイアログプロシージャ。INT_PTR CALLBACK (HWND, UINT, WPARAM, LPARAM)型。
VC++6.0で通したプログラムをこれでコンパイルしているんだが、ダイアログで static text 欄が右にずれる。IDC_STATIC -> (-1) で定義しているけど まずいんですかねえ。
193 :
191 :2006/03/29(水) 16:06:18
>>192 や、どうも。
勘違いしていた。IDC_STATIC の欄でなく、自分で ID 定義した static text 欄
だった。.rc ファイルの欄の矩形の left を修正しないとダメでしょうか。
(言わずもがなですねど、VC++6.0 のリソース・エディタで作ったもの)
貧乏っていやだね
196 :
デフォルトの名無しさん :2006/03/30(木) 20:07:56
visual c++ express editionで、 GUIのソフト作りたいんだけど、 MFCや.net以外でフリーで使えるライブラリかフレームワークって ないですか?
ogre
WIn32API
wxWidgets
コマンドラインで /EHsc オプション打ち込むのめんどいんですが、 デフォルトで有効にする方法ありますか?
いちいち手で打ってんだ
普段は make 使うけど、実験的にちょっとしたコードを書いたりしたときにはね。
バッチ作って起動。もしくは汎用makefileを作ってmake実行。 別にVCに限らないが。
>>109 と同じ症状で
>>63 を見てビルドできた者ですが
毎回
>>63 の変更をするのが面倒なので
SJIS を Unicode に変換してやれば毎回やらなくてもいいのではと思い
TeraPad で変換してビルドしたのですがうまくいきません。(同じエラーが出ます。)
毎回やらずにすむいい方法はないでしょうか?
>>204 もしかしてソースコードの文字コードを変換した?
だとしたら無意味だよ。
ソースコードに使う文字コードと実行時の文字コードはそれぞれ別だから。
それであのエラーを回避する正攻法はTEXTマクロやTCHARを適切に使うこと。使い方はググれ。
その上で、必要ならばマルチバイトを使う設定にする。
206 :
204 :2006/03/31(金) 00:14:14
ありがとう。全然わかってないのでトンチンカンな事を言ってるかもだけど プログラムをキチンと書けばよいって事ですかね? 当方猫でもわかるでも挫折しそうな予感。 Windows プログラミングってとっつきにくいですね〜。
構造体を継承したクラスとか構造体とかで インテリセンス効かないんだけど、 これを有効にする方法とかある?
210 :
200 :2006/03/31(金) 21:53:47
211 :
デフォルトの名無しさん :2006/03/32(土) 07:13:58
すべての参照の検索 カッコイイ
edit control に BOM 付き UTF-16 を渡すと変にならない?
213 :
デフォルトの名無しさん :2006/04/02(日) 01:44:54
データセット作ったらER図みたいなの書けるんだけど、これから、"CREATE TABLE"とかって吐けないの?
214 :
デフォルトの名無しさん :2006/04/02(日) 02:18:15
新規プロジェクト作成時に 「ClassFactoryは要求されたクラスを提供できません」 ってエラーになって先に進まないけど、どうしたらいいですか? コンソールアプリの時も同じエラーが出ます。
sprintfを使うと、sprintf_sを使えと警告が出ますが、sprintf_sを使うと、ほかのコンパイラで コンパイルできなくなってしまいます。#ifdefで場合分けする意外に何かよい方法はないでしょうか? sprintf以外で、同様の機能を持った関数はないでしょうか?
To disable deprecation, use _CRT_SECURE_NO_DEPRECATE.
#define _CRT_SECURE_NO_DEPRECATE と書いてみたのですが、やはりウォーニングがでます。
218 :
デフォルトの名無しさん :2006/04/02(日) 03:37:59
>>215 stringstream
sprintfは地雷だぞ
219 :
デフォルトの名無しさん :2006/04/02(日) 03:46:34
vs2003でマクロの言語がVBだけしか使えなかった気がしたのですが、vs2005はC#とかつかえますか?
220 :
デフォルトの名無しさん :2006/04/02(日) 03:47:54
実は、たったの24時間で、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
あなたの今後のネット収益を倍増するスキルがあります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
それを知りたい方は、他にいませんか?
アフィリエイトを使わずにホームページとEメールだけで3,000万以上稼いだ
インターネット・マーケッターの宮川さんが、
巨大な現金の山を作り出す門外不出の一生涯使えるノウハウを
下記のサイトで公開しています。
その内容をお知りになりたい方は、下記をクリックしてください。
【たったの24時間で あなたの今後のネット収益を倍増するスキルとは? 】
http://infostore.jp/dp.do?af=moneyclick&ip=successpreneur&pd=01
221 :
デフォルトの名無しさん :2006/04/02(日) 07:53:12
VS2005で社内業務アプリ(SQLServer利用)を開発をする ことになりました。 学習するための良い書籍はありますか? おすすめの本やURLがありましたら教えてください。
222 :
デフォルトの名無しさん :2006/04/02(日) 11:22:06
プロジェクト名と、プロジェクトファイル名と、プロジェクトのフォルダ名を 強制的に一致させるようにはできないものでしょうか? ソリューションエクスプローラでプロジェクト名を変更すると、 プロジェクトファイル名及びプロジェクトのフォルダ名も 変更されるようにはできないものでしょうか?
223 :
デフォルトの名無しさん :2006/04/02(日) 11:26:28
リファクタリングの機能って使えますか?
よーし、パソコン教科書visual c++ Express Edition入門 買ったぞ〜 がんばるぞ〜
225 :
デフォルトの名無しさん :2006/04/02(日) 18:39:09
226 :
デフォルトの名無しさん :2006/04/02(日) 20:56:11
これって、MFC使えないのか(´・ェ・`) 正規版買うか
Express ED ってダイアログを作るエディタとかないのかと思ってたけど、 普通に作れるの?メニューとかアイコンとか・・・
C++/CLI 使えよ、というメッセージ。
>>228 GUIなエディタは付属してないってこと?
ウワーン
233 :
デフォルトの名無しさん :2006/04/02(日) 23:47:53
昨年試用版はライセンス1年て言うことでしたが、ライセンスが切れたらどうなるんですか? VC立ち上げて編集とかまったくできなくなるんですか?
試用版ってなんだ? expressは無料配布が1年ってだけで、使用期限は無い。
235 :
デフォルトの名無しさん :2006/04/02(日) 23:58:33
これって試用版みたいなものじゃないか?
>>234 えっそうなんですか
なんか勘違いしていたようですねorz
失礼しました
237 :
デフォルトの名無しさん :2006/04/03(月) 00:09:21
質問です VC6でコンパイルしたlibにある関数を参照することはできませんか? リンクしようとするとエラーが出ます > LNK2019: 未解決の外部シンボル _ap_pcalloc@8 が関数 〜〜〜〜 で参照されました。 よろしくお願いします
238 :
デフォルトの名無しさん :2006/04/03(月) 01:07:05
商用利用可ですか?
可です
>>237 たぶん、インクルードしてないからエラーでるかと
CRTが違うからリンクできないでFA。
ここで質問あってるかな。2005って6と同居できますか?(拡張子の関連付け以外で影響なし?)
243 :
デフォルトの名無しさん :2006/04/03(月) 12:51:04
Professional と Express Edition って同居できますか?
同居させる意味がわからん。
245 :
デフォルトの名無しさん :2006/04/03(月) 13:37:49
人にプロジェクト渡すにあたって、 「これ、Visual C++ 2005 Express Edition 」でも コンパイルできますか?っていう質問に答えるため。
それは
作った時点で分からない? ATL使ってたり、MFC使ってたらNG.
テストファースト
>>249 え、おれはProfessionalとExpress Edition同居させてるよ
普通にインストールしただけだが、勝手に同居してる
全く、いい加減なこと言うやつが多くて困るな
Professional と Express Edition って別居できますか?
ググレ場出てくるんじゃね?
254 :
デフォルトの名無しさん :2006/04/03(月) 19:03:46
Non-Express Editions of Visual Studio 2005
do not function correctly when a Visual Studio 2005
Express Edition is installed on the same computer
and has an installation path that contains
more than 57 characters
http://support.microsoft.com/kb/912162/en-us
作成するとmicrosftとか文字が入るんですけどこれって消せますか?
256 :
デフォルトの名無しさん :2006/04/03(月) 21:40:02
>>255 どこにはいるのよ?
さっぱり分からん。
私の家のVC++2005EEが家出をしてしまったのですが、どこかで見かけませんでしたか?
258 :
237 :2006/04/04(火) 01:28:17
>>240 リンクするlibを「追加の依存ファイル」に設定したらリンクできました
LIBの意味を勘違いしていました
ありがとうございます
>>241 リンクは出来たんですが、apache.exeからdllにある関数を呼び出そうとするとアクセス違反が起きます
何から勉強していったらいいでしょうか?
ワトソン博士ログを見てエラーが起きた関数の名前はわかったのですが
アセンブラみたいな謎の文字列がいっぱい書いてあって何をしたら解決するのか分かりません
259 :
デフォルトの名無しさん :2006/04/04(火) 07:07:06
>>257 ちらっと見かけたから、
帰りなさい、もう遅いから、って言っておいた。
ちょっとばつが悪そうだった。
ところで、付属のコンパイラは2003ToolKitのものからバージョナップされているものですか?
262 :
255 :2006/04/04(火) 16:55:33
>>260 exeファイルをテキストエディタ開くと
R6027
- not enough space for lowio initialization
R6026
- not enough space for stdio initialization
R6025
- pure virtual function call
R6024
- not enough space for _onexit/atexit table
R6019
- unable to open console device
R6018
- unexpected heap error
R6017
- unexpected multithread lock error
R6016
- not enough space for thread data
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
R6009
- not enough space for environment
R6008
- not enough space for arguments
R6002
- floating point not loaded
Microsoft Visual C++ Runtime Library
こんなのがあるんですが消す設定ってありますか?
マイクロソフトのランタイムをリンクしない。
>>262 バイナリエディタで該当部分を書き替えればいいよ。
※ライセンスに注意
>>263-264 お早い回答ありがとうございます
リンクしないのは仕方が分からないので分かりませんが、埋めちゃえばいんですねー
あと、どんなバイナリ書き込んでるんだろ・・・・
馬鹿は相手にしない
>255 Professional Editionだろうと何だろうと使ってるライブラリの名称は入れる仕様らしい。 一度製品として出てるソフトのEXEの中身覗いてみるといい。MicrosoftだかBorlandだかの文字列が必ず見つかるはず。 ついでに言うと、これ消して配布すると>264も言ってるようにライセンス違反になるから注意ね。
いや冗談ですよ
>>267 bccでも出ますか? 出るか・・・
INIファイルの読み書きは、API使うしかない?
ノートパッドで読み書きできるお
>>269 そ。GetPrivateProfileString、WritePrivateProfileStringね。
>>270 面白いと思ってるのかね。VIPの真似事したいなら直接VIP行け
ていうか、いまどきiniファイルなんて使うなよ…
>>269 中身はただのテキストファイルなんだから、
ファイル入出力のAPIなら何でもOKだよ。
やっぱ今は流れに乗ってxmlなのかい?
マイクロソフトはレジストリを使うことを推奨してるだろ。
レジストリ使うアプリは嫌われてるよ
なら使うなよ。 IEもexplorerも使用禁止な。
まあ、iniよりはxmlを使え、とMSは言っている
なら使うなよってw ガキかよ
ガキで結構
ファイルの読み書きならapi使わなくてもできるだろ
API使わなきゃ何使うんだよプ
xml てパーサか補助してくれる API あります?
#import <msxml4.dll> msxmlにもいろいろとバージョンがあるけれど。
285 :
デフォルトの名無しさん :2006/04/05(水) 09:52:15
設定を保持するクラスを作ってシリアライズとか、どう? Microsoft 的にはやっぱりこれからもユーザ毎の設定は どうやって保持するのが推奨なんだろ。 レジストリ?それとも各ユーザのプロファイルの中にファイルで? 後者だとパスは Vista になったらまた変わっちゃうのかな? 漏れはコマンドラインアプリばっかり作ってるから boost::program_options 使ってるけど、 GUIでWindows オンリーなアプリケーションを これから作るとしたらどこに保存するのがいいんだろう。
パスは専用関数あっただろ・・・・あれ?
287 :
242 :2006/04/05(水) 10:41:55
2005買って入れてみたけど6に影響なさそうです。 (拡張子の関連づけが変わったけど。。。そんだけかな。)
288 :
242 :2006/04/05(水) 12:27:00
>>249 見落としてましたorz ありがとうございます。
アンインストール対象に6は入ってませんでした。
289 :
デフォルトの名無しさん :2006/04/06(木) 14:15:03
初心者です。 Express EditionでVCやVBを勉強しているのですが、インストールしたときに、 30日以内にライセンスの認証をしろと出てきます。 どうやって認証したらいいのでしょうか? よろしくお聞かせ願います。
アンインストールする
292 :
デフォルトの名無しさん :2006/04/07(金) 08:16:29
iが123にならないのですが、 どうすればいいのでしょうか? std::string target("123,"); std::istringstream stream(target); int i; stream >> i; std::cout << i << std::endl;
カンマを取り除けばいいんではないでしょうか。
約25時間放置されてたけど奇跡的にレスがついたな たぶんC++スレで質問してればすぐ回答でたんだろけど
295 :
デフォルトの名無しさん :2006/04/08(土) 09:49:54
デリミタとしてカンマを認識させる方法 arimasenka?
296 :
292 :2006/04/08(土) 10:00:47
>>293 ,294
どうも、VC6,VC7.1だと123になったのですが、
VC8(Express)だけだめみたいなんです。
カンマに関する特別の設定等があるのでしょうか?
VC6,VC7.1のバグがVC8で解消されただけ
298 :
292 :2006/04/08(土) 10:31:17
std::string target("123,123"); stream.imbue(std::locale("japanese"));//必須 にしたら123123になりました。 でも相変わらず"123,"はだめでした。 カンマ君コワス...
C++スレで質問すればすぐ回答でるんだろうけど
>>298 ちょっと試してみた。
VC8+標準のSTLだと変な数字になって、VC8+STLportだとちゃんと123になった。
STLportで正常に動作している以上、
>>297 ということはないような気がする。
istringstreamに詳しくないんではっきりとしたことは言えないけど、
とりあえずの対処として、STLportを使ってみては?
桁区切りのカンマとして認識されてるとかかね
302 :
298 :2006/04/08(土) 13:49:45
>>300 アリガトウ。
STLportで試してみます。
>>301 それっぽいです。xlocnum:(647)
桁区切りって必要なのだろうか、カンマが小数点の国もあるし、もうだめぽ...
303 :
デフォルトの名無しさん :2006/04/08(土) 13:54:06
仕様ではどうなってんだろう。 ロケール依存だから未定義?
304 :
298 :2006/04/08(土) 14:43:30
numpunct が関係してるのかな...
いいかげんスレ違い
306 :
デフォルトの名無しさん :2006/04/08(土) 20:03:58
VisualStudio 2005 でデータベース関連のプログラムを 学習したいのですが、よい参考書またはWEBページ はありますでしょうか? 言語はBasic, C++, C# どれでもOKです。 ご教授よろしくお願いします。
Visual C# 2005 Express Edition Oracle 10g Express Edition これ準備してDBの勉強すれば業務でも十分やってけるぞ。
まさか、業務でもExpressつかってたりするの?
業務内容によるだろう
311 :
デフォルトの名無しさん :2006/04/08(土) 22:47:18
ライセンス的にはぜんぜん問題ないからなぁ。
312 :
306 :2006/04/08(土) 22:47:46
言葉足らずですみません。 まだ業務で使うと決まったわけではなく、業務への採用が決定 したらVS2005を購入する予定です。 今はVSの採用が決まる前の学習期間です。 DB関連のコンポーネントの使い方、実際にはIDEでのDBコンポの プロパティの値の設定や基本的なコーディングが知りたいのです。 参考となる情報源を教えてください。 よろしくお願いいたします。
VB6.0でいうところのコントロール配列ってのをやりたいんだけど これはコントロールをTableLayoutPanelに入れてやるの?
ダイアログベースでアプリケーションをつくっています。 タスクトレイにアイコン表示をして、タスクバーは非表示にしています。 が、タスクバーに表示されないだけで、左隅に閉じた状態Windowが残ってしまいます。 これをなくすにはどうしたよいでしょうか? にしても、2003からポインタの表記とかが変わって困惑しています。 どこかまとめてるサイトってありますでしょうか?
エディタの左端に、関数などを折りたたみ表示する個所がありますが(デフォルトで灰色) こいつの色を変えるには、なんていう所を修正すれば良いんでしょうか。 オプション>フォントおよび色の所を、小一時間さらってますが、未だに見つかりません。 無いのかなぁ。
「縮小可能テキスト」じゃない?
>>316 !!!
なんで見逃したのだろう…ありがとうございます。マジ感謝です。
VB2005で、System.Drawing関連を使って グラフィックの描画を行っているのですが、 高速化をしたいと思っています この際、描画関連の処理以外はVBで行い、 描画の部分だけVC++2005 Express Editionでクラスライブラリ化したとすると 高速化されるのでしょうか? 具体的には、VBからコントロールのGraphicsを引数としてVC++で作った クラスライブラリに渡し、その先で描画させるようなことを考えています。
>>318 言語と環境をごっちゃに捉えている>318には高速化できないと思います。
ResourceHacker の出力した .rc ファイルには対応していますか? ↑のソフトは確かボーランド用でしたよね?
321 :
318 :2006/04/10(月) 17:26:16
>>319 ?
例えば単にSystem::Drawing::Rectangleを10000回繰り返すのを
VB2005とVC++2005でやったらどちらが早いのか?
という趣旨の質問だったのですが、実際にやってみたらほとんど変わらなかったので
全てVBで実装することにしました。
すでにVBでほとんど完成されてるアプリの描画部分だけを
VC++で作り直したら早くなるかな〜と思っただけなんですが
基本的に.NET Framework使ってる場合、VBだろうがVC++だろうが
あんまり処理速度変わらないんでしょうか?
>>321 .NET Frameworkが何なのか分かってるよな?
323 :
318 :2006/04/10(月) 17:31:30
>>322 いや、そのへんが正直よくわかっとらんのです。
なので、質問した次第です。
325 :
デフォルトの名無しさん :2006/04/10(月) 19:50:32
>>324 結果的には正論かもしれないが、きちんと説明してあげないと
正論もただの煽りにしか思えないヨ!
>321 .NET Frameworkってのは巨大なライブラリなの。(要はDLLの集まり) で、君のやってることはそのライブラリの同じプロシージャを単純に1万回呼び出しているだけなの。 そんなの、同じコード呼び出しているだけなんだから言語によって分かるほどの速度差があるわけ無いじゃないか。 ここまで言えばさすがに分かるよね? こんなもんでいいか?>325
香ばしいな。
芳ばしいですね?
ネイティブって作れないの? 初心者でスマソ
>>329 C++でどうぞ。(マネージ拡張なしで)
>>330 プロジェクトを選ぶところでwin32コンソールアプリケーションを選べば良いの?
333 :
デフォルトの名無しさん :2006/04/12(水) 14:28:59
visual C++ 2005 Express Editionでboost 1.33.1を使っています。
で、今日始めてboost::unit_test_frameworkを使ってみようと思い、
ttp://boost.cppll.jp/HEAD/libs/test/doc/faq.htm を読みつつ
追加のライブラリに libboost_unit_test_framework-vc80-mt.lib を入れて
ビルドしてみたところ、
MSVCRT.lib(MSVCR80.dll) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" (??0exception@std@@QAE@ABQBD@Z) は既に LIBCMT.lib(stdexcpt.obj) で定義されています。
(中略)
MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) は既に LIBCMT.lib(typinfo.obj) で定義されています。
LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
C:\Documents and Settings\Tomohito\My Documents\My Project\VS2005\boost\Debug\test.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
と、リンクエラーが出ます。
現在のプログラムはまだ、unit_test_frameworkが動くかどうか確かめたいだけなので
#include <boost/test/unit_test.hpp>
using namespace boost::unit_test_framework;
test_suite* init_unit_test_suite(int argc, char* argv[])
{
test_suite* Result = BOOST_TEST_SUITE("someclass test");
return Result;
}
これだけです。
どうやればこのエラーが回避できるでしょうか?
>>334 /NODEFAULTLIB:MSVCRTすればいいということでしょうか?
これをやると、
libboost_unit_test_framework-vc80-mt.lib(xml_log_formatter.obj) : warning LNK4217:
ローカルで定義されたシンボル ??0exception@std@@QAE@ABQBD@Z
(public: __thiscall std::exception::exception(char const * const &)) が
フィクション "public: __thiscall std::bad_alloc::bad_alloc(char const *)"
(??0bad_alloc@std@@QAE@PBD@Z) にインポートされました。
(中略)
libboost_unit_test_framework-vc80-mt.lib(execution_monitor.obj) : error LNK2019:
未解決の外部シンボル "__declspec(dllimport) void (__cdecl*__cdecl _set_se_translator(
void (__cdecl*)(unsigned int,struct _EXCEPTION_POINTERS *)))(
unsigned int,struct _EXCEPTION_POINTERS *)"
(__imp_?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z)
が関数 "public: int __thiscall boost::execution_monitor::execute(
class boost::unit_test::callback0<int> const &,bool,int)"
(?execute@execution_monitor@boost@@QAEHABV?$callback0@H@unit_test@2@_NH@Z)
で参照されました。
と、エラーがたくさん報告されて「外部参照 8 が未解決です。」になるので、
リンクするライブラリが違ったり、そもそもインストール時のビルドで何かおかしなことをやっちゃってるのか?
と思って質問させていただきました。
>>335 すみません。 解決しました。
リンクするライブラリを、libboost_unit_test_framework-vc80-mt-s.lib (たぶん、dllを使わないスタティック版?)
にすると、/NODEFAULTLIB:MSVCRT しなくても、正常にビルドできました。
単純なことにお時間使わせて申し訳ありません。
ビルドしたらすぐに実行されてしまうんですけど、どこで変更できますか?
ビルドと実行はわかれてるはずだが。
F5がビルドだと勘違いしてるんでしょ。
VC++2005EEの使い勝手の質問ではありませんが、関連ということでお尋ねします。 中で扱う default の文字が unicode なのでこれに合わせようかと既存のコードを 書き換え中です。 で、テキストの表示に語句を色付きで扱っているので、これまでテキスト・ファイル を一旦 .rtf に変換して edit control に送り込んでいたのですが、SJISベースの rtf データを unicode に変換して(SF_RTF | SF_UNICODEで)EM_STREAMIN で 送り込んでも表示されません。rtf データは 7 bit char 基準ですから当たり前と 言えば当たり前ではあります。 ということは、内部が unicode の世界では、rtf format は共存できないのかな と思っていますが、そういうことでしょうか。 (edit control が使えないとなると、プログラムの構造を変えないといけないのか と思うと、気が重くなっています。) 諸兄のお知恵・ご助言をお願い致します。
SJISのどこが7 bit charなんだ
342 :
340 :2006/04/16(日) 08:51:36
いいえ、それはトムです。
mfcのサンプルだろうか?
最初は Hello, World! だろ いきなりそういうのビルドするのは素人か池沼
347 :
343 :2006/04/16(日) 22:40:03
自己解決しますた。
348 :
デフォルトの名無しさん :2006/04/17(月) 22:28:01
Visual C++ 2005 Express Edition をインストールしてみました。 そして、コンパイルしてみたところ "windows.h"が無いといってコンパイルに失敗します。 調べてみたところ includeフォルダの中にwindows.hがないのですが、 どうしたらいいですか?
またか・・・
Windows.hを用意するw
いいかげん過去ログ読まんで質問するやつほっとけよ
353 :
デフォルトの名無しさん :2006/04/17(月) 22:44:12
ToolStripButtonについて 非アクティブのフォーム上にあるToolStripButtonをクリックしても フォームがアクティブになるだけで、Clickイベントが発生しません。 これだと2回クリック要するので、1回で済ませたいと思います。 通常のButtonだと1回でClickイベントが発生してくれます。 どなたか良い方法をご存じありませんか?
354 :
348 :2006/04/18(火) 01:57:24
>>354 >教えてもらってありがとうございました。
日本語の勉強もしよう。
「教えてもらった」のは誰? 「ありがとう」と感謝したい対象は誰?
別に変じゃないよ? あまり一般的でない表現だけど。 お前こそ勉強したら?プ
教えてもらって... ありがとうございました こういうことだろう。 だが...の利用はSFINAEのハック以外推奨されません
VC++6.0からVC++2005に乗り変えようとしてるんですが、VC++2005をインストールしてから「ファイルを開く」 のダイアログに出てるファイルに2回目以降カーソルを重ねるだけで不正な処理メッセージも出ずに 吹っ飛ぶようになりました。 同居は危険なのでしょうか?
359 :
358 :2006/04/18(火) 16:42:10
ちなみにデバッガで追ってみたらShell32.dllでアクセスバイオレーションでした。
iiie
前にもそんなこと言ってたやついたけど
うちでは問題なく同居してるお
363 :
ばぐた :2006/04/20(木) 17:47:19
364 :
名前:デフォルトの名無しさん :2006/04/20(木) 21:28:43
みたいだね。 ありがたい話だ。
まぁ予想通りだな、などと冷淡さを気取ろうと思ったが、 念のため取っておいたExpressのイメージファイルを消せる喜びに気付いた。 古いノートだから、HDDの容量少ないのよね…。
>365 CDやDVDに焼けよ
2003Standardの方が使い勝手が良かったなあ・・・ 最適化コンパイラさえあれば・・・
368 :
デフォルトの名無しさん :2006/04/21(金) 06:50:50
最適化無いの?express
>>358 AdobeReader 7 の pdfshell が原因でそうなったことがある。
>>368 VC++.net standard 2003に無い。
368の読解力の無さを、370が指摘したが、371に理解されなかったって感じか 或いは368が間が悪い奴か、だな 367は今すぐ、2003StandardにVCTK入れるんだ。それで全てが手に入る 別に違法でもない。どころかMSの意図通りだ
expressの方がいいじゃん
すぐラク マイセルフ
375 :
デフォルトの名無しさん :2006/04/21(金) 14:20:50
登録って1回だけじゃだめなの? 期限がくるたびに登録ですか?
hoge.txtを読み込みたいとき、hoge.txtはどこにおけばいいですか? 左にはソースファイル、ヘッダーファイル、リソースファイルと ありますが、どこに置いてもダメなんですが・・・・。
主語は何ですか?
378 :
376 :2006/04/21(金) 16:29:48
分かりました。
>>378 正解はカレントディレクトリ。
いつもカレントディレクトリが同じ場所とは限らないので要注意。
カレントディレクトリが見つかりません 消しちゃったのかな? どうしよう
>>375 あれ何なのかね?
cl が欲しくて落としたから、たまにしか IDE 立ち上げないけど、そのたびに登録しろと言われる。
「Visual C++ 2005 Express Edition にご登録いただき、ありがとうございます。 」
のメールが3通あるんだけど。
> このメールは、Visual C++ 2005 Express Edition のご登録を済まされた方に一回限りお送りしています。
とか書いてあるのにw
>>381 俺もはじめそれにはまった。1回プロジェクトを作ってセーブすると出なくなる。
383 :
thx :2006/04/22(土) 03:25:14
>>380 >カレントディレクトリが見つかりません
>消しちゃったのかな?
そういうのは、最初に「什麼生(そもさん)」と書きましょう。
これがUnixならカレントディレクトリを消せるんだけどねぇ。
プロンプトからnmakeを使いたくて環境変数に↓を登録しました。 INCLUDE C:\Program Files\Microsoft Platform SDK\Include;C:\Program Files\Microsoft Visual Studio 8\VC\include LIB C:\Program Files\Microsoft Platform SDK\Lib;C:\Program Files\Microsoft Visual Studio 8\VC\lib PATH C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft Visual Studio 8\VC\bin これでいいんですかね? nmakeはVC\bin\nmake.exeとPlatform SDK\bin\nmake.exeと2つありますが どっちを使ったらいいのですか?
普通に VC のを使ったらいいんじゃね。
>>386 人に聞く前に試してみたら?
別に鼻から悪魔は出やしないよ。
>>388 やってみたんですけど、違いが分からなくて気になったので聞いてみた次第です。
他に追加した方がいいpathとかありますか?
>>389 動作に違いが見当たらなければバージョンはどう?
>>390 今手元に実機がないので明日みてみます。レスありがとうございます。
「Visual C# 2005 ExpressではWindowsコントロールライブラリを作成できません。」 っていうことですけど、これってどういう問題があるのでしょうか?
そういう質問するレベルならまったく問題ない
xemacsのコンパイルにて下記のエラーが出て止まりました。 これを回避する方法ってあるのでしょうか? NMAKE : fatal error U1095: 展開されたコマンド ライン 'echo link -nologo -increm ental:no -base:0x1000000 -stack:0x800000 -entry:mainCRTStartup -subsystem:windo ws -heap:0x00100000 -nodefaultlib setargv.obj -pdb:C:\work\xemacs-21.5.26\src \temacs.pdb -map:C:\work\xemacs-21.5.26\src\temacs.map -out:C:\work\xemacs-21.5. 26\src\temacs.exe C:\work\xemacs-21.5.26\nt\obj\console-msw.obj C:\work\xemac s-21.5.26\nt\obj\device-msw.obj C:\work\xemacs-21.5.26\nt\obj\event-msw.obj C: \work\xemacs-21.5.26\nt\obj\frame-msw.obj C:\work\xemacs-21.5.26\nt\obj\glyphs- msw.obj C:\work\xemacs-21.5.26\nt\obj\gui-msw.obj C:\work\xemacs-21.5.26\nt\ob j\objects-msw.obj C:\work\xemacs-21.5.26\nt\obj\redisplay-msw.obj C:\work\xema cs-21.5.26\nt\obj\select-msw.obj C:\work\xemacs-21.5.26\nt\obj\dired-msw.obj C: \work\xemacs-21.5.26\nt\obj\menubar.obj C:\work\xemacs-21.5.26\nt\obj\menubar-ms w.obj C:\work\xemacs-21.5.26\nt\obj\scrollbar.obj C:\work\xemacs-21.5.26\nt\obj\ scrollbar-msw.obj C:\work\xemacs-21.5.26\nt\obj\toolbar.obj C:\work\xemacs-21.5. 26\nt\obj\toolbar-msw.obj C:\work\xemacs-21.5.26\nt\obj\dialog.obj C:\work\xemac s-21.5.26\nt\obj\dialog-msw.obj C:\work\xemacs-21.5.26\nt\obj\dgif_lib.obj C:\wo
rk\xemacs-21.5.26\nt\obj\gif_io.obj C:\work\xemacs-21.5.26\nt\obj\mule-ccl.obj C:\work\xemacs-21.5.26\nt\obj\mule-charset.obj C:\work\xemacs-21.5.26\nt\obj\m ule-coding.obj C:\work\xemacs-21.5.26\nt\obj\dumper.obj C:\work\xemacs-21.5.26\n t\obj\vdb.obj C:\work\xemacs-21.5.26\nt\obj\vdb-win32.obj C:\work\xemacs-21.5.2 6\nt\obj\mc-alloc.obj C:\work\xemacs-21.5.26\nt\obj\abbrev.obj C:\work\xemacs-2 1.5.26\nt\obj\alloc.obj C:\work\xemacs-21.5.26\nt\obj\alloca.obj C:\work\xemac s-21.5.26\nt\obj\blocktype.obj C:\work\xemacs-21.5.26\nt\obj\buffer.obj C:\wor k\xemacs-21.5.26\nt\obj\bytecode.obj C:\work\xemacs-21.5.26\nt\obj\callint.obj C:\work\xemacs-21.5.26\nt\obj\casefiddle.obj C:\work\xemacs-21.5.26\nt\obj\cas etab.obj C:\work\xemacs-21.5.26\nt\obj\chartab.obj C:\work\xemacs-21.5.26\nt\o bj\cmdloop.obj C:\work\xemacs-21.5.26\nt\obj\cmds.obj C:\work\xemacs-21.5.26\n t\obj\console-stream.obj C:\work\xemacs-21.5.26\nt\obj\console.obj C:\work\xem acs-21.5.26\nt\obj\data.obj C:\work\xemacs-21.5.26\nt\obj\device.obj C:\work\x emacs-21.5.26\nt\obj\dired.obj C:\work\xemacs-21.5.26\nt\obj\doc.obj C:\work\x emacs-21.5.26\nt\obj\doprnt.obj C:\work\xemacs-21.5.26\nt\obj\dragdrop.obj C:\ work\xemacs-21.5.26\nt\obj\dynarr.obj C:\work\xemacs-21.5.26\nt\obj\editfns.obj
C:\work\xemacs-21.5.26\nt\obj\elhash.obj C:\work\xemacs-21.5.26\nt\obj\emacs. obj C:\work\xemacs-21.5.26\nt\obj\emodules.obj C:\work\xemacs-21.5.26\nt\obj\e val.obj C:\work\xemacs-21.5.26\nt\obj\event-stream.obj C:\work\xemacs-21.5.26\ nt\obj\events.obj C:\work\xemacs-21.5.26\nt\obj\extents.obj C:\work\xemacs-21. 5.26\nt\obj\faces.obj C:\work\xemacs-21.5.26\nt\obj\file-coding.obj C:\work\xe macs-21.5.26\nt\obj\fileio.obj C:\work\xemacs-21.5.26\nt\obj\filemode.obj C:\w ork\xemacs-21.5.26\nt\obj\floatfns.obj C:\work\xemacs-21.5.26\nt\obj\fns.obj C :\work\xemacs-21.5.26\nt\obj\font-lock.obj C:\work\xemacs-21.5.26\nt\obj\frame. obj C:\work\xemacs-21.5.26\nt\obj\gc.obj C:\work\xemacs-21.5.26\nt\obj\general .obj C:\work\xemacs-21.5.26\nt\obj\getloadavg.obj C:\work\xemacs-21.5.26\nt\ob j\glyphs.obj C:\work\xemacs-21.5.26\nt\obj\glyphs-eimage.obj C:\work\xemacs-21 .5.26\nt\obj\glyphs-shared.obj C:\work\xemacs-21.5.26\nt\obj\glyphs-widget.obj C:\work\xemacs-21.5.26\nt\obj\gui.obj C:\work\xemacs-21.5.26\nt\obj\gutter.obj C:\work\xemacs-21.5.26\nt\obj\hash.obj C:\work\xemacs-21.5.26\nt\obj\indent.o bj C:\work\xemacs-21.5.26\nt\obj\imgproc.obj C:\work\xemacs-21.5.26\nt\obj\ins
del.obj C:\work\xemacs-21.5.26\nt\obj\intl.obj C:\work\xemacs-21.5.26\nt\obj\i ntl-win32.obj C:\work\xemacs-21.5.26\nt\obj\intl-encap-win32.obj C:\work\xemac s-21.5.26\nt\obj\intl-auto-encap-win32.obj C:\work\xemacs-21.5.26\nt\obj\keymap .obj C:\work\xemacs-21.5.26\nt\obj\libinterface.obj C:\work\xemacs-21.5.26\nt\ obj\line-number.obj C:\work\xemacs-21.5.26\nt\obj\lread.obj C:\work\xemacs-21. 5.26\nt\obj\lstream.obj C:\work\xemacs-21.5.26\nt\obj\macros.obj C:\work\xemac s-21.5.26\nt\obj\marker.obj C:\work\xemacs-21.5.26\nt\obj\md5.obj C:\work\xema cs-21.5.26\nt\obj\minibuf.obj C:\work\xemacs-21.5.26\nt\obj\nt.obj C:\work\xe macs-21.5.26\nt\obj\ntplay.obj C:\work\xemacs-21.5.26\nt\obj\objects.obj C:\wo rk\xemacs-21.5.26\nt\obj\opaque.obj C:\work\xemacs-21.5.26\nt\obj\print.obj C: \work\xemacs-21.5.26\nt\obj\process.obj C:\work\xemacs-21.5.26\nt\obj\process-n t.obj C:\work\xemacs-21.5.26\nt\obj\profile.obj C:\work\xemacs-21.5.26\nt\obj\ rangetab.obj C:\work\xemacs-21.5.26\nt\obj\realpath.obj C:\work\xemacs-21.5.26 \nt\obj\redisplay-output.obj C:\work\xemacs-21.5.26\nt\obj\redisplay.obj C:\wo
rk\xemacs-21.5.26\nt\obj\regex.obj C:\work\xemacs-21.5.26\nt\obj\search.obj C: \work\xemacs-21.5.26\nt\obj\select.obj C:\work\xemacs-21.5.26\nt\obj\signal.obj C:\work\xemacs-21.5.26\nt\obj\sound.obj C:\work\xemacs-21.5.26\nt\obj\specifi er.obj C:\work\xemacs-21.5.26\nt\obj\strftime.obj C:\work\xemacs-21.5.26\nt\ob j\symbols.obj C:\work\xemacs-21.5.26\nt\obj\syntax.obj C:\work\xemacs-21.5.26\ nt\obj\sysdep.obj C:\work\xemacs-21.5.26\nt\obj\text.obj C:\work\xemacs-21.5.2 6\nt\obj\tparam.obj C:\work\xemacs-21.5.26\nt\obj\undo.obj C:\work\xemacs-21.5 .26\nt\obj\unicode.obj C:\work\xemacs-21.5.26\nt\obj\widget.obj C:\work\xemacs -21.5.26\nt\obj\window.obj C:\work\xemacs-21.5.26\nt\obj\win32.obj C:\work\xe macs-21.5.26\nt\obj\dump-id.obj comctl32.lib "c:\src\xpm-3.4k\lib\Xpm.lib" "c: \src\libpng-1.2.8\libpng.lib" "c:\src\zlib-1.2.3\zlib.lib" "c:\src\tiff-3.7.3\li btiff\libtiff.lib" "c:\src\jpeg-6b\libjpeg.lib" "c:\src\compface-1.5.1\libcompfa ce.lib" "c:\src\zlib-1.2.3\zlib.lib" oldnames.lib kernel32.lib user32.lib gdi32 .lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib netapi32.lib winmm.lib w inspool.lib ole32.lib mpr.lib uuid.lib imm32.lib msvcrt.lib' が長すぎます。 Stop. 長すぎるって言われても困るがな・・・
取り敢えずもっとルートに近いところで作業したら?
xargs使えばいいのに。
404 :
デフォルトの名無しさん :2006/04/23(日) 22:26:36
Visual Studio 2005 Express Editionの無償ダウンロードを継続的に提供 Visual Studio 2005 Express Editionへの高い反響にお応えし、これまで発売後1年間限定としていた 無償ダウンロード提供を、継続的な無償提供に変更することが決まりました。 (2006 年 4 月 21 日, 製品情報)
[゚д゚] デフラグガカンリョウシマシタ /[_]ヽ | | (),0000001122224556EEEESSVVaaddddeeiiiiiiiillnnoooopprrssssssttttuuuuxx、、。いいえおがここしししす たたてでととなにににののへまままりるれををウウダダドドロロンンーー供供供償償償反品報売変定年年 後応情提提提日更月決無無無発的的継継続続製間限響高
express買った人悔しいだろうなw
一部売ってる
CD-ROM配布だっけ? どっかで見たよーな・・・
>>401 ありがと。ここは突破しました。
その後dump中にnmakeが落ちたところで立ち止まってますが・・・
412 :
デフォルトの名無しさん :2006/04/24(月) 09:08:14
>>372 ToolKit 2003ってもう公式からはDL出来ないんですが、どこで手に入りますか?
VC++.NET2003stdはもう最適化コンパイラを使えないって事ですかね…。
expressでコンパイルすればいいじゃん
>>412 ExpのVC8を使えないか試してみたら? うまくいったら報告よろしく。
VC++.NET2003Standardを買っちゃったんですけどもう無用の長物ですかね? VC++2005Express(+SDK)で2003の事がMFCやATL以外の事全て出来ちゃいますか? なんか出来ればお金を払った方を有効活用したくて…。 用途は、コンソール、ネイティブ(Win32API)、MFC、C++/CLIです。
>>416 C++/CLI はどうしようもないだろ。
と、いいますと?
419 :
デフォルトの名無しさん :2006/04/24(月) 13:42:25
>>417 俺、結構好きなんだけどな C++/CLI
>>418 いやだから、
>なんか出来ればお金を払った方を有効活用したくて
と言ってるから、C++/CLIはだめっしょと言うことです。
>>416 VC++2005Expressはリソースエディタが付いてないから、ネイティブの
ウィンドウズアプリを作るのにはVC++.NET2003Standardの方が少し有利かも。
422 :
デフォルトの名無しさん :2006/04/24(月) 16:49:02
C言語のAPIのコードを貼り付けたけどエラーがでます。 どうしてでしょうか?
こういうわけわかんない質問のしかたされるとコンパイラに同情したくなるな
>>422 君はそれをするレベルになっていないっちゅーことですよ。もうちょっと
基本からやったほうがよさげ
厨の命令は聞きたくないそうです。
426 :
デフォルトの名無しさん :2006/04/24(月) 18:07:59
馬鹿が賢い奴を探すためにわざと分かり難い表現で質問して やったんだよ。 つまり、お前らが馬鹿どうかをすでに判定されたわけ。 よって厨房はこの質問に答えないでください(答えられません) 答える権限がある人間は賢い人間のみです。
たぶんクリップボードの問題
ああ、C++/CLIって2005にしかないんだね。 ようやく理解した。
>>421 EEでリソースエディタ使えなかったけど、メモ帳で書き変えれたお
リソースエディタってなんですか?
リソースファイルのリファレンスがネット上にはあるから、 自力で書こうと思えば書けるよね。
いふぉ〜むエディタ
VC6で編集したリソースまんま使えるな。これで移行できるよ。
435 :
デフォルトの名無しさん :2006/04/26(水) 07:05:50
こんにちは。ビルド後のサイズの質問なのですが、 同じプロジェクトをVC++2005 Expressでビルドすると、 VC6等でコンパイルしたものより、どれもサイズが 1.2倍ほど大きくなってしまいます。 たとえばDirectX SDKのサンプルにある三角ポリゴンを 表示する軽いソースで試してみた場合では、下の結果に なったのですが(他の大きなプロジェクトで試しても 同じ程度の差が出る)‥こういうものなのでしょうか? ※すべてReleseビルド。VC++2005で最適化の項目を サイズ優先などにしても数KB程度しか軽くならない。 <exeのサイズ> ・VC6 Professional(SP6) : 144kb。 ・ToolKit2003 : 140kb。 ・VC++2005Express : 176kb。
436 :
デフォルトの名無しさん :2006/04/26(水) 07:14:57
Toolkitだれか下さい。。
>>414 からもDL出来ませんでした・・・
2005はリリース版のデフォルトオプションに、デバッグ情報の埋め込みが含まれるとか
2005からはCRTがマルチスレッドのみになったから、 静的リンクしているならそれもあるかもしれんね。
なんでマルチだけになったの? シングルはいらないの?
マルチでもシングルと同じことができるし
/MT オプションつけると 1バイトだけ違う……
すいません、質問です。 ただいま、Visual C++ Ver6.0(OS:Win2K)を使ってプログラムを組んでいるのですが、 事情により、これをVisual C++ .Net 2005 または 2003でコンパイルする必要が出てきました。 ソースコードを少しいじればコンパイルもとおるのですが、 コンパイルオプションなどで、VC .Netを使って、6.0のソースを コンパイルできるようにする方法はないでしょうか。 ofstreamなどの扱い方が違うので、少々困っています。 よろしくお願いします。
444 :
435 :2006/04/27(木) 03:48:17
>>437 >>438 レス、ありがとうございます。
バイナリエディタで開いて比べて見た感じでは、
よく分からないけど、 増加個所にCランタイム ライブラリに
関係してそうな個所が、あるようにも見えるので
そのあたりの違いの問題なのかもしれません。
増加分は2割程度の微妙さなので、あまり気にせずに
もう少し勉強しながら、いじってみることにしてみます。
445 :
デフォルトの名無しさん :2006/04/27(木) 09:44:01
>>443 Visual C++ .Net 2005 なんてものはない。
Visual C++ 2005 ならある。
ofstream の挙動って変わってたっけ?
VC++6からなら、for 文のループ変数のスコープとか問題になるね。
.Net 終了ってこと?w あれだけ大々的に鳴り物入りで始めたのに?w もう終了?w
447 :
デフォルトの名無しさん :2006/04/27(木) 19:13:22
これまでBorland BuilderXでC言語を学んできたものですが このExpress Editionがフリーで落とせると聞いて興味がでてきました ぶっちゃけこっちに乗り換えるメリットはありますか? あるとしたらどんなことですか?
448 :
デフォルトの名無しさん :2006/04/27(木) 19:18:51
乗り換えないでよろしかろう。
>>447 言えるとすれば、
今までのVisualStdio(6.0等)を継承しているのはVS2005
.NETではない、C#でもない
Visual C++(2005)を使ってC言語の学習がしたいのですが、使い方がいまいち分かりません。 というか効率よく作る方法が分かりません。 今は新規プロジェクトで空のプロジェクトを作り、Cファイルを追加し、 そこに書き込んでビルドしてから「デバック無しで開始」を押して実行してます。 この作業がかなり面倒なのでもっと単純にできませんか? 理想としては新規ファイルでCのプログラムを書き、 ワンクリックでコンパイル&実行ができたらな、と思います。
プロジェクト作らずにソース開いてビルドする
新規でソースから作ってもプロジェクトは自動生成してくれるよ。
ふつー cl.exe 使う
↑プ
おまーみたいなやつはプログラムに向いてない。
Xwindowsか UNIX系のGUIXで使うならメジャーだなあ
>>450 ビルドせずともデバッグ無しで開始を押して平気。
ビルドしていなければするかどうか聞いてくるから、そこでビルドできる。
さらに設定を変えればビルドするか聞かず、いきなりビルドするようにできたかもしれない。
ご回答ありがとうございます。
>>451 , 452
新規でファイルを作成すると、デバッグ無しで開始が有効になりません。
ファイル→新規作成→ファイル→Visual C++→C++ファイルを順に選んだのですが、
どこか手順を間違えてますか?
>>453 , 456
cl.exeを実行してみると「mspdb80.dllが見つからなかったため…」とエラーが出て起動できません。
>>459 確かにできますね。少しでも簡略化できてよかったです。
それと一つのプロジェクトに複数のソースファイルがある場合、
それぞれを別々に実行することってできませんよね?
462 :
デフォルトの名無しさん :2006/04/27(木) 23:32:03
[゚д゚] デフラグガカンリョウシマシタ /[_]ヽ | | ..///001112334558:=?EEESSVVaaccddddeefgiiiiiiiiiklllmmnnoooooooppprrrsssssssttttttuuuuxx、、。ーーい いえおがここしししすたたてでととなにににののへまままりるれををウウダダドドロロンン応間供供供響継 継決限後更高償償償続続定提提提的的年売発反変無無無
464 :
デフォルトの名無しさん :2006/04/29(土) 22:35:28
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { _ MessageBox ::Show("Wellcome to VC++ world!"); でエラーがでてしまいますが。 どこが違うのでしょうか?
standard買っちゃった
混沌の祭壇
468 :
デフォルトの名無しさん :2006/04/30(日) 23:03:57
>>466 今朝やったら成功しました。
お騒がせしました。
-は勘違いです。
他人が昔書いたソースをコンパイルしたいのですが、VC6でいう、「単純なWin32アプリケーション」で生成されるスケルトンをExpressだけで作ることはできるでしょうか? (メインのcppファイルだけが公開されていて、自動生成されるおまじないの分が入っていない状態です) 出来るとしたら、追加のパッケージが必要になるでしょうか。 なお、現在は公式ページに従いPlatform SDKをインストールして、ついでにWin32アプリケーションが生成できるように弄っている状態です。
設定をがんばっていじればそういうの出せたと思う どこのページに載ってたかわからんが、ぐぐれば見つけられると思う
サンプルあるだろ
VS.net2003であったマクロって無くなったんですか? スニペットとかいうのがマクロ代わり?
>>470 設定を頑張って弄れば、というのは
> ついでにWin32アプリケーションが生成できるように弄っている状態です。
のことでしょうか。これだと生成されるスケルトンが少し違うようなのですが……私が間違えているのかな
>>471 私に対するレスですよね? できればどれのことを指しているのかもう少しヒントをください。お願いします
何に困ってるのか良く分からない。 ビルドできるだけじゃ不満なのか? ビルドできないのが不満なら、スケルトン云々はどうでもいいだろ? やったこととエラーの内容を示せよ。 俺は別の処理系用のソース持ってきて(ちょっと変えて)ビルドできたぞ。 多分おまいのやりたいことができるという状況証拠になるだろう。
ヘッダーファイルへ移動はあるのになんでその逆がないんじゃー! マクロないのが地味に痛いな。
476 :
472 :2006/05/02(火) 23:48:32
やっぱマクロないんですね(´д`; やっぱ2003に戻そう。
Expressは知らんがProにはあるよ。
ぁーproにはあるのか マクロないと使う気しない せっかく開発環境移行させようと思ったのになぁ・・・
マクロが使えないなんて最低だなぁ・・・
480 :
デフォルトの名無しさん :2006/05/03(水) 18:48:19
大学でやってるものを家でやろうと思ってこれをインストールしたんですが、 大学でちゃんと実行できてたのにこれだとscanfにエラーが出たりわけわかめです 一応C++ですがほとんどCで作成してます 学校で使ってるコンパイラは…なんだっけ…忘れちゃったんだけど、有料だったことは間違いないです 何が原因でしょうか?
警告が出てるだけって落ちは無いよな?
>>480 Platform SDKを入れてない、に 100ガバス
scanfはCだから、PlatformSDKいらんだろ。
484 :
480 :2006/05/03(水) 19:04:29
>>481 scanfは警告のようです…お恥ずかしいw
エラーが出てるのはexit()ですね
というかこれだけでした
どういうことなんでしょう?
scanfの警告も私としては謎です
>>482-483 それが必要?
ちょっと調べてみます
485 :
480 :2006/05/03(水) 19:26:24
>>484 scanfとかはバッファオーバーフローする可能性があるんだけど、
オーバーフローするときはエラーになる関数を用意したからそっちを使いなさいという警告。
C言語の勉強中は無視してもかまわないよ。
ていうか、どんなエラーが出るか書いたら?
どんなエラーかわかんないのに答えようがないよ。
include と lib だけなら 400MB 弱くらいですね。
489 :
480 :2006/05/03(水) 23:41:37
>>486 その通りですね
warning C4996: 'scanf' が古い形式として宣言されました。
C:\Program Files\Microsoft Visual Studio 8\VC\include\stdio.h(295) : 'scanf' の宣言を確認してください。
メッセージ: 'This function or variable may be unsafe. Consider using scanf_s instead.
To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
error C3861: 'exit': 識別子が見つかりませんでした
こういう感じです
exit()って確か関数だからそれが見つからないってことはやはりインストールされてないってことですよね…
>>487-488 もうギリギリっす…Visual C++インスコするだけでかなり苦労しましたし…
stdlib.hはインクルードしてるかい?
491 :
480 :2006/05/03(水) 23:48:56
>>490 stdio.hしかインクルードしてないっす
学校ではそれでも動いたので
今からやってみます
>>489 どうせ、stdlib.hをインクルードしてないんだろ。
学校では.c、家では.cppだったりとか市内よな・・・
494 :
480 :2006/05/03(水) 23:56:56
おおおおお動いたあああ
と思って入力した途端にエラー出て終了したです…
>>493 え、あ、そうかもしれないです…
今.cppなので.cに変えてみます
ここはお前の日記帳じゃないぞ。
.cならヘッダインクルードし無くても呼べるっぽいが、 ヘッダはきちんとインクルードしる。
497 :
480 :2006/05/04(木) 00:15:14
うーん、ダメでした…
>>495 ごめんなさい、もう諦めますので…
>>496 今後気を付けます
皆様ありがとうございました
498 :
デフォルトの名無しさん :2006/05/04(木) 04:33:45
初歩的な質問でスマンが、 Win32コンソールアプリケーションで作成して、 コンパイルして実行すると、DOS窓がすぐ閉じてしまう。 getchar(); とか組み込んでも、同じ結果になる。 ちゃんとコンパイルは通るんだ?何か このバージョンだけgetchar();を無視するとか、そういうのがあるのでしょうか?
scanf 改行
500 :
498 :2006/05/04(木) 04:47:11
>>499 天才 どもありがと
1時間ぐらい悩んでた悩みが解消されたよ
コンソール使えないやつがコンソールアプリ作ってる矛盾
>>489 バッファオーバーラン対策で文字列系関数の大半は後ろに _s が付くように変更になっている。
その為の警告。scanf_sを使うようにするか、
#define _CRT_SECURE_NO_DEPRECATE 1
#include <stdio.h>
#icnlude ...
とinlcude前に_CRT_SECURE_NO_DEPRECATEを定義することで警告を出さないようにすることが出来る。
error C3861はC++としてコンパイルした場合に関数のプロトタイプ宣言がない場合に出でる。
Cとしてコンパイルした場合は /W3 以上で警告。
CかC++の判定は、cl ではなくてIDEからコンパイルする場合は拡張子ではなくプロジェクトのプロパティの設定で
行うので、恐らくC++の設定になってると思われる。どっちでもいけるようにするには stdlib.h を include する。
503 :
デフォルトの名無しさん :2006/05/04(木) 08:40:27
>>501 おまえさんはWindowsのすべてを理解してるの?
理解してないならWinアプリは作るなよ。
おまえさんはハードウェアの仕組みをすべて理解してるの?
理解していないならWindowsを含むすべてのOSは使うなよ。
504 :
デフォルトの名無しさん :2006/05/04(木) 09:09:26
きました逆ギレ
505 :
デフォルトの名無しさん :2006/05/04(木) 09:10:45
おまえさんは空気のすべてを理解してるの? 理解してないなら空気吸うなよ。
おまえさんは脳みそのすべてを理解してるの? 理解してないなら脳みそ捨てろよ。
おまえさんは生きることのすべてを理解してるの? 理解してないなら死ねよ。
俺は死のすべてを理解していないので死ねない。
510 :
デフォルトの名無しさん :2006/05/04(木) 14:06:19
Platform SDKインストールしようとしたら Signatureがinvalidとか出てロールバックされちゃう SDKのバージョンが最新なのがまずいのかな?> Server 2003 R2 MSDNの手順のページのリンクは一つ前のバージョンだし ひょっとDLしなおしですか?
ファイルが破損してたみたいです(><) DLしなおしたらインストールできた
ほっとけば死ぬでしょ
このソフトでDirectX SDK使って2DのGAME作りたい けどこれ使ってDirectXのプログラム作るページ見つからない
あっそ
自分で何とか出来ないのなら、有料の製品を買えばいい。
有料の製品を買えばなんとかなると思ってるのか
少なくとも必用なものをダウンロードして回る手間は省ける。
519 :
489 :2006/05/05(金) 01:03:46
>>502 ありがとうございます。
その設定もしてみました。
で、結局最大の原因は私のプログラムミスでしたw
でも学校ではそのままでもエラーも警告もなく動いてたんですよ
どんなミスだったかというと配列でよくあることだったんですが、
count[3]と宣言していて、count[0]〜count[3]まで4つ使っていました
これが通ってしまうコンパイラというのは親切なのかダメなのかどちらなのでしょうか
Visual C++の質問ではないですが、このスレの皆さんのお陰でVisual C++でも普通にやっていけそうです
ありがとうございました
>>519 >count[3]と宣言していて、count[0]〜count[3]まで4つ使っていました
>これが通ってしまうコンパイラというのは親切なのかダメなのかどちらなのでしょうか
仕様です。
コンパイラというより言語の。
>>520 君が書いたコードはメモリリークだらけだと思う。
523 :
519 :2006/05/05(金) 01:21:29
>>520-521 コンパイラは通ってしまうが、実行時にメモリ不足が起きてしまうと解釈しました
なんとなく納得できました
今後は気を付けます
>>523 本来、別の目的で使う部分に侵食して、
あとで、そこ使おうと思ったら、ダメだしされるんだよ。
こんなの通すCコンパイラって・・・て感じだなw
>523 その程度の認識だと絶対繰り返すよ。 極端に言うと配列とポインタは同じように使えてしまう。範囲外かどうかのチェック「すら」しないのは言語の仕様でもあるけど 実際にチェックが行われないのは高速化のため。 細かい部分のメモリ管理は自分で行うべきというところが、プログラマーの見えないところであまり勝手な動作をしない前提のCらしいところ。
526 :
523 :2006/05/05(金) 01:49:11
学校で使ってるコンパイラの名前思い出しました〜
CodeWarriorです
>>524-525 コンパイラの力だけに頼らずに、自分でもちゃんとチェックすることが大事だと感じました
詳しくありがとうございました
>>526 >523みたいなこと言ってるといつまで経っても>524みたいな頓珍漢なことしか言えなくなるぞ。
このソフトで作ったw32アプリ?は .NETを入れてない人のPCも動くのでしょうか? あと、C#で作られたものは、簡単に逆アセしてソースみれたりするみたいだけど このソフトで作ったw32アプリもやっぱり簡単に逆アセされるんでしょうか? もしくは、難読化することはできるんでしょうか?
>>528 >.NETを入れてない人のPCも動くのでしょうか?
.NETが必要な物も、必要でない物も両方作れる。
>簡単に逆アセされるんでしょうか?
逆汗自体は逆アセンブラなどを使えば簡単にできる。
>もしくは、難読化することはできるんでしょうか?
あなたのやり方次第。
まあ、逆汗した物が「簡単に」解読できるかどうかは
自分で簡単なテストプログラムでも作って試してみればわかる。
530 :
528 :2006/05/05(金) 14:05:23
>>529 どうもありがとうございます
がんばってやってみます
531 :
質問す :2006/05/05(金) 15:31:21
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/ ↑ここを見ながらにSDKの設定をやっとるのですが
真ん中あたりの
>手順 4. corewin_express.vsprops ファイルを更新します。
でミスっちゃったらしいんです
新しいプロジェクトとしてWin32 コンソール アプリケーションを作成しようとすると
corewin_express.vspropsが正しくないよ、的なエラーが出て作成できません
愚かにもバックアップなどしてないもんで余分なところイジっちゃったのかどうか良く分かりません
で、VC++とPlatform SDKをあわせて使っている方、以下で正しいのかどうか確認してもらえませんか?
///以下C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults\corewin_express.vspropsの内容
<?xml version="1.0"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="Core Windows Libraries">
<Tool
Name="VCLinkerTool"
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib">
</VisualStudioPropertySheet>
532 :
531 :2006/05/05(金) 15:34:31
XML 解析中に次のエラーが発生しました: ファイル: C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults\CoreWin_Express.vsprops 行: 9 列: 0 エラー メッセージ: DTD またはスキーマによると、要素 'Tool' のコンテキストにテキストは使用できません。 ---------ちなみに以上がエラーメッセージ やっぱ<Tool>タグがおかしい?でも意味わからんス
このC++2005EEとvc++6.0stdとだったらどっちがいいの?
そこで分からないようなら金を出して最新の製品を買え。
むちゃくちゃな質問だな 条件なしじゃ比較のしようがない
536 :
533 :2006/05/05(金) 16:50:24
すません。 ネイティブなものを作る場合です .NETアプリ作る場合はC#で作ります すごいアプリ作ってる人の開発環境見ると 大抵、VC++6.0だったりする で C#で作ってる人は初心者が多いような いろいろ、情報が多そうなのはVC++6.0のような気もするし、 GUIの作りやすさはC++EEのような気もするし
そりゃあんた、例えば今年の新車と数年前の人気車種とじゃ街中で見かける台数はどっちが多いか自明だべ。 んだども、どっちだって運転する分にはそうかわんね。あんたが入手できるほうでいいべさ。
538 :
デフォルトの名無しさん :2006/05/05(金) 16:54:11
Visual C++で作ったdebugのフォルダの中にある.exeのファイルを 他の人に送っても開けないのですがなぜですか? またこれを解決するにはどうすればいいんでしょうか?
release版を送ってあげなさい。
540 :
533 :2006/05/05(金) 17:04:28
>>537 んーやっぱ最終的にはどれでも一緒、道具に捕らわれるな
ってことなんでしょうけど、独断と偏見でもいいので知りたいな。
おれはこういう理由でC++EEに移行した。みたいな
541 :
538 :2006/05/05(金) 17:05:02
>>539 それはどうやったら作成できるのでしょうか…?
542 :
533 :2006/05/05(金) 17:16:17
543 :
537 :2006/05/05(金) 17:26:37
私はC++らしく書きたかったのでVC6は捨てた。 あんなSTLもまともに使えない、forループの変数スコープのおかしなものは、もう要らない。 或いは、今までCUIをgcc@cygwinで書いてたけんども、今度はGUIをやろうと思ったんだがね。 mingw使うのもやっかーしいし、只なら試してみんべってVC2005EEを落としてみたっちゃよ。 まぁ、好きにするさw
544 :
541 :2006/05/05(金) 17:28:16
リビルドして書き換えられたであろう.exeを送りましたが、 「アプリケーションが開始できません」と出るそうです… なぜええ コマンドプロントがあれば動くはずなのに
545 :
デフォルトの名無しさん :2006/05/05(金) 17:41:11
カスタマ向上プログラムに協力してください。 とか、立ち上げるたびに出てきてウザイんだけど。 みんなは協力してるの?
>>544 ちゃんと ソリューション構成をReleaseに切り替えて
Releaseフォルダの中にある奴を送ったか?
それでもダメならどんなエラーが出るのか *詳細に* 聞け。
>>536 実は一番良いのは VC++5.0 だ。
自分が使い込んでる道具が一番使いやすい。
最適化するとデバック情報も入れたいと無理なのか・・・ アンインスコ決定
せめて書き込むなら日本語で
最適化するとデバッグ情報も入れないとだめなのか・・ C#は簡単にソースが覗かれるし C++はデバッグ情報入れないと最適化できないし・・ やっぱ.NET使えないんでない? 趣味でやるだけならまだしも、公開目的だと厳しいなぁ
>>552 はあ?
初心者か中学生くらいか?
>C++はデバッグ情報入れないと最適化できないし・・
そんなわけ無いでしょ
寧ろ逆だしな。
>>552 つーか、お前の書いたソースなんて誰も見ないから気にすんな。
/Oq2とRC1は同時に設定できないってエラーがでるんですが? デバッグ出さなければできないってことでしょ
てか、ネイティブ用のデザイン編集画面ないの? C#みたいにコントロールを手軽に追加できないじゃん? ボタンから何から全部コードで書いて、うまくいったかどうかは わざわざビルドしなきゃ見れないってことか? やっぱ、アンインスコ決定
559 :
538 :2006/05/05(金) 20:59:13
>>558 すみません。お手数かけます
フォームは.NETで作ったのがだめだったんでしょうか?
フォームもアンマネージで作らないと、配布パッケージがいるということでしょうか?
>>556 =
>>557 VC++に/Oq2なんてコンパイラオプションは存在しないわけだが。
要は厨には使えない仕様になってんだよカス。
>531 uuid.lib" />
なんでここにはカスが多いのかね。 第一スレ違い。
563 :
538 :2006/05/06(土) 00:40:55
コマンド ライン オプション '/Ox' と '/RTC1' は同時に指定できません 最適化できねーし
>>563 君には使いこなせないことがよくわかった。
アンインスコした方が良いよ。
565 :
538 :2006/05/06(土) 01:27:43
>>564 使いこなせないって始めたばかりの人間に何言ってるんだかw
おまえは1日で使いこなせたのかよ
わからないから聞いてるんだ。答えろ
てか、むかついたから、VC++6.0入れたら、環境設定が変えられたのか
c++2005がビルドできなくなったしw
開発環境に文句言う前に自分の腕磨けってこった。
itoaをやると古い書き方だとかいう警告でるんだけど 新しい書き方はどうやるの?
569 :
544 :2006/05/06(土) 03:11:02
>>546 おおーそういう風にやるってことだったんですね
で、その通りにやったら出来てそのexeを自分でも起動してみたのですが、、、
変な動作してるorz
なぜにdebugの中のexeと同じようにならないのですか?
あと538で書き込んでる人がいますが、それは全部偽者です
変数の初期化をしてないとかいった類のミスじゃね?
571 :
544 :2006/05/06(土) 04:13:35
>>570 全くその通りでしたw
使う前に0を入れてないところがあったので、それを入れたらうまくいきました
たいして状況も説明してないのに原因を言い当てるなんて凄いと思います
どうもでした
デバッグ版とリリース版の違いとしては、下のつ2つが重要。
1.自動変数の初期化(
>>570 )
2.同一ステートメント内での関数の評価順
>>570 おまえすげーな、それってそんなに定番のバグだったのかね
>>573 570じゃないけど、定番。
見抜けなくても警告レベルを上げればたぶんコンパイラが見つけてくれる。
評価順のほうはコンパイラでの検出はたぶん無理なんで、たちが悪いといえる。
言語仕様を理解したうえで、問題の起こらないコーディングを身に付けることが必要。
575 :
571 :2006/05/06(土) 14:56:35
結局送っても実行できませんでした…
仕方ないのでBorlandのほうでやろうと思ったらそっちは動作がおかしい
おそらく
>>572 さんが言う2が原因だと思います
関数内で同じ関数を2回呼び出して、後で呼び出したほうの数値が明らかにおかしくなってます…
結局自分のプログラムが間違ってるってことなんですねぇ…
出直してきます
>>575 いっそソースを張ってみるとか。
注意点としては、次のようなコードの場合関数の呼び出される順序は決められない。
int foo = func() + func() * func() - func();
func()が呼出しごとに順に増える整数を返すとして、
foo = 1 + 3 * 2 - 4;かもしれないし foo = 3 + 1 * 2 - 4;かもしれないし foo = 4 * 2 * 3 - 1;なのかもしれない。
#勿論、int foo = func(); int fooz = func(); foo += fooz * func(); foo -= func(); とすれば foo = 1 + 2 * 3 - 4;になる。
int you = fuck() + fuck() * fuck() - fuck();
c++6.0 Pro使ってるんだけど、乗り換える理由ってある?
579 :
531 :2006/05/06(土) 22:31:27
>>578 1. templateをバリバリ使いたい
2. forスコープのバグUZEEEEEEEEEEEEEEEEEE
3. リンク時コード生成ハァハァ
4. OpenMPでオマンマ食って生きたい
5. じっくりきっちり系IntelliSenseタソテラモエス
上記のうち1つでも当てはまるのならどうぞ。
VC6っていまだに使ってる人ちらほら見るけど、STLとかかなり不完全だよね
てか、C++EE使ってるとノートンがスクリプトエラーばっか出すんだけど なんとかなんねーのかよ
ノートンやめる
スコープはバグじゃNEEEEEEEEEEEEEEEEEEEEEEET
そのあたりの時代背景を知ってる奴ももう減っていくんだろうな
初歩的なヘルプ作れよ クラスの宣言の仕方とか メソッドの構文どうやって書くかとか 新しく作成したクラスを別クラスから呼び出す方法とか なんでMSDNにはそういうのが全然ないわけ? 表記法知ってるのを前提のヘルプなのか? なめんじゃねーよ!!!!!! 初心者向けのヘルプぐらい作れ!! だからみんなdelfhidefhiって言うんだよ!!
Express Editionですから
初心者向けはVB C#
>>586 そりゃプログラム以前の話だから
>初心者向けのヘルプぐらい作れ!!
その程度も解らないなら手を出すな
なんで無料でそこまでしてやらにゃならんの? 金出さないなら犬糞でも使ってろよプ
最適化はあるのですか?
592 :
デフォルトの名無しさん :2006/05/08(月) 14:47:49
無いよ。最適化したいなら金払えってこと。
金払わずに最適化したければ 御自分で効率の良いコードをお書きなさい。 しらねっけど
最適化ってそんなに早くなるの?
そういう質問をするやつに限って 最適化なんてどうでも良さそうな ソフトしか作らないだろ。
無料とのことなのでインストして弄ってみたわけですが。 最初に、フィーリングでCRLのフォームアプリケーションで ボタンを押すとラベルテキストが変わるのを作ってみたのですが CRLのフォームとMFCのフォームの取り扱い・動作の違いがよく分かりません。 どなたか掻い摘んで説明していただけないでしょうか
CRLじゃなくてCLRでしたorz
スレタイを100回声に出して嫁。 ここは質問スレだ。
質問ですが?
自分で調べりゃわかることを丸投げじゃな
調べても分からないほどお馬鹿だから質問したのに
個人レッスンは有料
生徒が欲しいなら教室を開けば?
604 :
デフォルトの名無しさん :2006/05/08(月) 20:47:29
Visual C++ 2005 Express Edition は NET Framework 2.0 の普及促進用アメ玉。
>>596 ごくごく簡単に掻い摘んでわかりやすくまとめて言うと、ランタイムが違う
C++/CLRって何だ? どんな#includeになるんだ_? 数個の命令で簡単にフォームとか作れちゃうわけ_?
>>606 #include<System.Windows.Forms>
Form frm=new Form();
Form.Show();
これだけ
>>606 C#の.NETプログラミングをC++に持ってきた感じ。
609 :
606 :2006/05/09(火) 00:21:36
>607,608 スゲーちょっと感動したかも
すまん、へー、と思ってやってみたんだが fatal error C1083: include ファイルを開けません。'System.Windows.Forms': No such file or directory VCEE でいいんだよな? 本当はこんな感じ? Form ^frm=gcnew( System::Windows::Forms::Form ); frm->Show(); デザイナでボタン貼り付けてメッセージボックス出してみたけど、結構いいかもw
(´・ω・`)ショボーン
612 :
607 :2006/05/09(火) 03:33:50
ここはVC++のスレなんだけど?
またいつぞやのC#野郎か。
>>605 ランタイムが違うって意味不明。
じゃあ同時に起動したらどうなんだよ、っていう。
ほんと意味不明だな
今エディタの色変えの設定をしているのだけれど ・メニュー→ビューの表示→宣言で出てくるビューの背景色 ・折りたたみした所のマーカーにカーソルを合わせた時に出てくるウィンドウの背景色 この二つの設定を変えるところだけが見つからないのだけれど 何か特別な指定が必要? それとも、いろいろ設定しすぎると反映しない設定も出てくる?
誤爆orz
「ランタイムライブラリ」のつもりで「ランタイム」って言ってんじゃないの?プ ハードディスクのこともハードとか言いそうなやつだよなプ
つ ハードディスクドライブ
CLRはランタイムだよな
これって期限無制限で使用できるようになりましたけど、DL自体は1年間だけということでしょうか??
>>610 こんな感じ。
using namespace System::Windows::Forms;
ref class MainForm : Form
{
public:
TextBox textBox;
MainForm()
{
textBox.Multiline = true;
textBox.Dock = DockStyle::Fill;
textBox.Text = "Hello, world!";
Controls->Add(%textBox);
}
};
int main()
{
MainForm mainForm;
Application::Run(%mainForm);
return 0;
}
626 :
610 :2006/05/11(木) 01:37:43
>>625 ふむ。いい感じじゃないの。
610 の2行は、実際に動かしてみたんやつなんだけど、あれでもいいんでしょ?
ついでに匿名関数とかあると書き捨てが楽になっていいんだけど。
クロス開発してて、ターゲットの一部のソースを使う Win ホスト向けツール作るのに、
BCB 使ってたんだけど、乗り換えてもいいかもw
BDS アップデート買ったのにインストールさえしてないのは惜しいけどw
win32コンソールでつくって int _tmain(int argc, _TCHAR* argv[]) { char c[64]; scanf("%s",&c); return 0; } をコンパイルしたとき、 warning C4996: 'scanf' が古い形式として宣言されました。 'scanf' の宣言を確認してください。 て出てたので怖くて schanf_s に直して使っていたのだけれど。 さっき、うっかり scanf のままビルドしてしまったら 別段問題なく実行し終了できたように見えました。 schanf_s にしない場合、どんな問題が発生する可能性がありますか?
scanf_s ('A`;)タイプミス
>scanf で文字列を読み取る場合は、書式が %s の桁数を必ず指定してください。 >たとえば、"%s" ではなく、"%32s" と指定します。指定しなかった場合は、 >入力の書式が正しく指定されず、バッファ オーバーランが発生しやすくなります。 >または、scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l または fgets の使用を検討してください。 つまり、fscan を使おうと思えば使えるけど気をつけないとバッファオーバーランするぞ ということですか。 こんなページあったのしらなかった駄目な俺 orz
631 :
デフォルトの名無しさん :2006/05/12(金) 11:40:08
C++で、正規表現を使いたいのですが、 C#では、普通の文字列変数はString scsv; 可変長配列のは String[] sta; とかかけるんですが、 本を見ると、 C++ではString ^scsv; になるのはともかく、配列がarray<String^>^ sta; と、C#の記述と全然違うのですが、 C#に近い記述方法って何かありませんか?
C#みたいに書きたいならC#使えばいいじゃん。
633 :
デフォルトの名無しさん :2006/05/12(金) 12:00:01
>>632 いや、それがそうもいかん事情がありまして。
そこをなんとか。
そもそもC++/CLIをC++って言うからややこしくなる。 それはさておき、C#みたいに書きたいなら自分でクラスを作って適当なoperatorを用意すればいいじゃん。
Microsoft Visual C++ Toolkit 2003と比べて何がよいのでしょうか?
全然別物
sub.hというヘッダファイルをプロジェクトファイルに追加して メインのCファイルでそのファイルをインクルードして デバッグなしで開始しようとしたらエラーが出てできません。 No such file or directory 振るパスで指定しないとできない・・orzなぜだ
ひょっとして #include <sbu.h> と書いてる?
640 :
638 :2006/05/13(土) 21:49:55
641 :
638 :2006/05/13(土) 21:54:11
確かに同じフォルダにあるのに・・
sbu.hて何だおれ
643 :
638 :2006/05/13(土) 21:56:14
c:\documents and settings\*\my documents\visual studio 2005\projects\directxtest05\directxtest05\logo.cpp(2) : fatal error C1083: include ファイルを開けません。'sub.h': No such file or directory
644 :
638 :2006/05/13(土) 21:57:00
↑2つめのCファイルに書いてみた
>>638 ほんとうに <> じゃなくて "" でインクルードしてるのか?
647 :
638 :2006/05/13(土) 22:08:46
"sbu.h"って書いたからわかりませんでした ""が重要だったのか・・
648 :
638 :2006/05/13(土) 22:09:19
tくす
藻舞らやさしいな…
C++/CLRでフォームにボタンが付いていて、押すとHelloWorldってメッセージ だすプログラムソースのってるとこしらないですか? できればtest.cppのように1ソースでまとめてあるところを お願いします
フォームにボタン貼り付けてからメッセージハンドラを記述するなら 自分で書くコードは1行で済むと思うけど 拾ってきたソースで勉強すると、膨大な量のソースを見ることになるな
ウィザードのあと、ツールボックスからボタンを貼り付けて イベントにメッセージ書いたらいいのね 見慣れないコードがきになるなぁ
最適化はあるだろ PGOとかはないけど
ExpressEditionにはMFC入っとらんの?
入っとらんよ。
>>655 さんくす。
やっぱ買うしかないのね(ノ_・、)
配布された課題に、クラスの中で class ABC { public: ABC() : mr_d(NULL) { } ~ABC() { } て記述があるんですが5行目の:が1日かけて調べてもわかりません コンストラクタでmr_dを初期化してるように思うんですが 参考書では ABC(){mr_d=NULL;} という書き方しか載っていないんです.こういう書き方も存在すると考えていいんでしょうか? 他に同じように":"を用いる書き方ってありますか? 教えてください><
658 :
657 :2006/05/16(火) 23:16:29
すみませんスレ違いでした><
659 :
デフォルトの名無しさん :2006/05/18(木) 00:25:34
これ、インクリメンタル検索みたいな感じで、ファイル切り替え出来ないですかねぇ もしインクリメンタルクラス検索みたいのがあれば、そっちの方が嬉しいです つまりVC6風のウィザードバーがあれば良いのですが…
660 :
誰か助けてくださいまし。 :2006/05/19(金) 09:50:03
VC++2005にて error C2371: 'time' : 再定義されています。異なる基本型です が出て、困っています。
元々、
ttp://www.freak.ne.jp/HEPOPO/soft/index.html#roguew からソースをいただいてきてそのまま、コンパイルしているのですが、
下記詳細エラーがでます。
c:\documents and settings\home\デスクトップ\roguew134s\machdep.c(787) : error C2371: 'time' : 再定義されています。異なる基本型です。
c:\program files\microsoft visual studio 8\vc\include\time.inl(133) : 'time' の宣言を確認してください。
自分の考えられる範囲では、インクルード時に意図したファイルよりも先に別のファイルを取得しているために、
意図しないコンパイルが行われエラーを起こしていると思い、[ツール][ユーザー設定]で環境変数を変更すれば解決すると思ったのですが、
うまく行きません。どのようにすれば解決できるのでしょうか?
よろしくお願いします。
>>660 そのコードは古いスタイルで書かれていて、プロトタイプ宣言を関数内で自前でやってるからエラーになるっぽいね。
取り敢えずその行を消してみたら?
乱数の種に使っているだけだと思われるから実害はないと思うよ。
>>661 ありがとうございます。おかげで、通りました。
663 :
660 :2006/05/19(金) 12:38:31
今度は、リソースファイルをコンパイル中にエラーです。 エラー 1をrc.exeが返した とだけ出て、先に進めません。 もしかして、VisualC++Expressだとリソースコンパイルはできないのでしょうか?
665 :
660 :2006/05/19(金) 12:54:15
>>664 以前同じところ(リソースコンパイル時)でエラーで駄目です。
666 :
663 :2006/05/19(金) 19:08:20
未だに解決できません。
>>63 の文字コード関連を色々と変えてみましたが、依然変化なし。同じところまで行って、エラーになります。
また、フォルダを調べてみたら、拡張子なしのRCaxxxxx(xには、数字)が幾つかあるものの、やはり.rcsファイルは見つからず。
引き続き、ご教授のほどお願いします。
PSDK入れたり、afxres.hが見えるようにpath通したり・・・
なんでいきなり動かしにくいものに手を出すかな
669 :
660 :2006/05/20(土) 01:43:37
みなさま、ありがとうございます。 色々とPathを通してみたり、window.h とdefine IDC_STATIC -1 してみたり、 やれるだけの事はしてみましたが、依然エラー原因が分かりませんでした。 また、MIDLに/oしてみたのですが、エラーも 1を返してうんぬんで結局エラーの詳細は不明でした。 今回は、これ以上は進展できそうにないので、ここで打ち切る形をとることにしました。 コンパイルこそ出来なかったものの、皆様のおかげで以前よりかなり多くのことを知ったと思います。 ご協力ありがとうございました。 PersonalEditionでなら、ちゃんとコンパイル通るのでしょうか? 買っちゃおうかなぁ。アハハハハハハ
670 :
660 :2006/05/20(土) 02:16:23
>>668 元々は、ソースの研究用にと思っていたのですが、
Platformを手に入れてはしゃいでいたのもあったかと思います。
あとは、キー入力のバグ(AppMain.c 407行目:case VK_NUMPAD6: ch='k')を直して、NumberPadでも快適に操作をと思いました。
初心者が、出すぎた真似をしてすみません。
馬鹿には越えられない壁がある
バークレイ版UNIXに含まれているローグ5.3 ↓ MS−DOSに移植 日本語版ローグ・クローン ↓ Win32に移植 Rogue Clone II for Win32 ↓ もしかして、VisualC++Expressだとリソースコンパイルはできないのでしょうか?
↓ PersonalEditionでなら、ちゃんとコンパイル通るのでしょうか? 買っちゃおうかなぁ。アハハハハハハ
>>669 試してみたら
#include "afxres.h"
のかわりに
#include <windows.h>
#define IDC_STATIC (-1)
でビルドできたが。
何故に初心者ほど環境の所為にしたがるのはどうしてですね。
最初はHello、Wold! と相場が決まっている。 いきなり難しいものに手を出すのはド素人
大きなソースだとエラーの原因を突き止めるのが難しい。 しかも他人が作ったソースなら更に困難だろう。 だから必要最小限のソースを用意して原因を調べるのが常識。 それをやらずにいきなり環境のせいしたわけだろ
質問箱?おいおい!ム板の土日はスレ関係無しにオヤジの説教タイムって決まってんだよYeee!!Haaa!!
VC++にはリファクタリン機能ついてないんですか? >リファクタリング ツールを使用すると、ソース コードが自動的に再構築されます。たとえば、ローカル変数をパラメータに昇格した場合や、コードのブロックをメソッドに変換した場合に再構築されます。 > ローカル変数をパラメータへ上位変換する > メソッドの展開 > フィールドのカプセル化 > インターフェイスの展開 > 名前の変更 > パラメータの削除 > パラメータ順序の再変更
Express使ってるやつにはどうでもいいこと
ついてるよ
C++やCのプログラムをコンパイルすると LINK : fatal error LNK1104: ファイル 'kernel32.libuser32.lib' を開くことができません。 とでて実行できないのですが何がいけないのでしょうか・・
>>685 パスが kernel32.libuser32.lib となっていたので,
kernel32.lib user32.lib とスペースを開けたらできました。
アドバイスありがとうございました。
なにをやったらそんなふうになったんだよw
688 :
デフォルトの名無しさん :2006/05/22(月) 12:41:17
昔の #include <stdio.h> int main(int argc , char **args) なプログラムをコンパイルしたいのですが、 プリコンパイルヘッダ無しのwin32コンソールプロジェクトを立ち上げて、 そこのソースに流し込めばOKですかね? っていうか、それでいいみたいなのですが、 プリコンパイルヘッダ無しにしなきゃ理由がわかりませんので、なぜ?
>>688 そういうものだから。
逆にプリコンパイルヘッダを使いたいなら stdafx.h に #include <stdio.h> を書いて
mainのコードには #include <stdafx.h> を書いとけ。
そういや、VC++じゃプリコンパイルヘッダって、標準じゃstdafx.hだけど、 afxってMFCの命名だよなぁ… stdafx.hって名前使いたくないなら、どんな名前がある?
>>690 コマンドラインのこの辺いじるんじゃない?
/Yu"stdafx.h"
質問の意味を理解してないな。 どんな名前付けるかって訊いてんだよぼけ。
stdafxでいいだろバーカ野郎 それかstdio
じゃあ、studioで
タダだから落としたらGUIが全部英語だった。 日本語化できるかどうか調べてくる
え、なに落としたの?
そのままでも使えるだろ。
日本語化した方が分かりにくくならない?
初めから日本語版を落とせばいいだけだろ。
703 :
698 :2006/05/24(水) 20:17:12
日本語版あったの〜〜〜⊂⌒~⊃。Д。)⊃
>>1 のリンクからどう間違えば、英語版にたどり着くか?そのほうが問題なんだが・・・・。
ツールボックスに初期の状態では含まれていないコントロールを追加する方法ってどうやるんでしょうか?
日経ソフトウェア今月号買ったらVC++2005Express付いてた。
>>704 ググって自力でたどり着いた所が英語版でしたぁヽ(`Д´)ノ
インストにすごい時間かかったのにやり直しか_| ̄|○ 逝ってきまーす
708 :
705 :2006/05/25(木) 08:30:09
他所で聞きます。 失礼しました。
C言語(C++ではなく)のコンソールプログラムのプロジェクトを作りたいんですがどうすればいいんでしょうか?? 現在はやり方がわからなくて仕方なくコマンドプロンプトひらいてます・・・
?
Expressだと選べるプロジェクトの種類が2個ぐらいだったような 間違ったら違う方を選べばいいだけ
ああそうかC++ではなくCにしたいということか
エディタで書いてMAKEし昔を懐かしむ
そのうち、人間がコードを書いてたのを懐しむようになるさ
VSは拡張子でコンパイル方法を変えてくれないの?
デフォルトの動作と設定による動作がある。 要は好きなようにできる
あの無料のVC++EEでもWin32APIベースの開発は可能。 だが、あれは、NetFrameWork2.0を花粉としてあちこちへ 運んで欲しいという願いを込めてMSが配布したもの。 基本的に、あれでコンパイルした従来のWin32APIベースのソフトは、 NetFrameWork2.0がインストールされていないPCでは起動しない。
_.,., --''." ̄゛゛゛- 、 , -'´ ゙ー- 、 ,,//// /,// ゙ヽ ,イ ///// /ソソ// ィ/ ゙|,,,,..,、 ノ゙、 イノ从/,/ / イ//リ// //゛゛゛'ヾ.,lii トヽy'从゙、 !ハ从! l! i! i! il i li il! / リ l l 从ヾil lk i iハi l! il! lilハl>k从 イ, _,,..ィチ 从i li il! ll!リ ゙ミ il!从(( ::: )ハl <( ::: ) Yイ l / i! il リ ,,,彡爪ハ ミ -'" _____ `"-イノ /リ////リ ////从从ミ [  ̄カ 彡ノノ/イ/// ./////////ハ从ヽ、`ー-'_,,彡彳/リ///リ : ' //イ iハリ´リ ___゛77' "/////ソリ lリ lソリ _∠派、 / ///ィ"/从 ハノ リ ,/ ヽトミ、__lミイ // /ソ< ̄ト, ┏ __上_ / 、、 /_____ l,ゝ<゛<イノハノ リ ゛i l l. ┃口 | 七 ' 7二 ヽヽ/ | | | .|\ /,.==、>" ゝ /" /-- 、 ノ/ l ノヽ||/ / 、_ ./ 。 。 。 ┃ |/ k"ァ-y".: /l /ァ==ミヽ / / l  ̄ ̄ ┛ lイ 〔ミ::" ,,ノ |(/⌒ヾ、ミV" ト-" | ヾミ彡"// ! / ! i Y゛"-.y" /i/ i_/ ! ト-t-y" /彡"ノ/ l .| l./ / ヽヾ、 | l l/ イ ゙', ', ',,、 ! ! レ' / i ', ', ',', l l"/ /、 ! ', ', .',', l iノ イ ゙i ! ', ', ',', / ./ ! l i ', ', ',', i i |、 l ! ',. ', ',', ヽ. キ '丿! i ',. ', ',', | l゙ヘ、__>-t" '! i ',. ', ',',
そこは緒川たまきにしてよw
>>717 デフォルト環境で動かないプログラムは
ゴミと紙一重だとおもう
>デフォルト環境 Vistaだとデフォなんでしょ。 >.NetFrameWork2.0
VC++2005のExpress版でWin32のアプリを配布する場合だが コンパイルオプションを /MD から /MT にかえればMSVCR80.DLLは不要になる。 MFCも使ってるならこちらもスタティックライブラリを使うようにする。 既にDLLの配布が必要な状態ならdotnetfxを丸ごと入れなくてもvcredist_x86を配布すれば必要なDLLはインストールされる。 Express版に再配布パッケージが入ってたかどうかは確認できてないがMSのサイトからもダウンロードできる。
VC++2005のExpressを使用したWinアプリを作りたいのですが、お勧めの解説サイト・本を教えて下さい
嘘間違いの多いサイトより本買うべき
うるせえ!!間違った本やカスな本よりはマシナンダヨ
本媒体になると、なぜか無条件に信頼度上げてしまうんだよな 本でも、平気に嘘やら誤解招く書き方してるの有るのに
買う前に良い本を教えてもらえばいいじゃん。
730 :
デフォルトの名無しさん :2006/05/28(日) 10:06:20
>>730 単純に比較できるものではないでしょ。
このスレ的には描写の速さは知ったこっちゃないからスルーとして、
起動だけなら前者が速いのは確実かな。
リソース ファイルとして埋め込んだファイルを コンパイル後の実行ファイルから取り出すことは可能でしょうか。 あと、PSDKを使わない場合は、コンパイルしてもネイティブな 機械語コードは出力していないのでしょうか。
リソースは取り出せるが 取り出せないような対策してある場合もある
>>733 レスありがとうございます。質問ばかりで申し訳ないのですが、
取り出せないようにする対策はどうすれば良いでしょうか。
Express Editon にはリソースエディタが含まれていないそうですが、
問題なく埋め込みは可能でしょうか。
リソース、リソースといっても色々あらぁな
736 :
デフォルトの名無しさん :2006/05/28(日) 15:50:09
Win32で作ってるんですけど、 WinMainでstrtok関数を使うと、 「error LNK2019: 未解決の外部シンボル __imp__strtok が関数 _WinMain@16 で参照されました。」 が出てきます。 なぜでしょうか? #include <string.h> はちゃんとつけてあります。
Microsoft Platform SDK を使用した場合、コンパイルしたEXEファイル があれば他にDLLやランタイムが無くても最低限動作はするのでしょうか?
>>736 俺が見てるC辞典では stddef.h も読んでる
>>736 CRTをリンクしない設定になっていたりしない?
strtokはunicodeでは通らないだろうね
742 :
デフォルトの名無しさん :2006/05/28(日) 20:44:35
743 :
デフォルトの名無しさん :2006/05/28(日) 21:43:18
たぶん質問の仕方に問題があるんだろう。
746 :
デフォルトの名無しさん :2006/05/29(月) 20:30:11
プロジェクトの設定?
ランタイムライブラリってところを、 マルチスレッド (/MT)にしたら動きました。 ありがとうございました。
748 :
デフォルトの名無しさん :2006/05/30(火) 22:10:15
Win32アプリでgdiplus.hをincludeしてコンパイルしたらGdiPlusMetaFile.hで沢山のエラーが出ました。 なぜでしょうか? PSDKはインスコ済みで、#pragma comment(lib, "gdiplus.lib")も記述してます。
なぞなぞ遊びになんか付き合ってられないよ。 エラーの内容を省略せずに書いて。最初の何行かでいいから。
たしかWIN32_LEAN_AND_MEANを定義していたらそんなことになったような気がする。
751 :
748 :2006/05/30(火) 22:45:30
すみません。よく見たらgdiplusmetafile.hだけじゃなくて、 gdiplusimaging.h gdiplusflat.h gdiplusheaders.h でも以下のようなエラーが出ます。 c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2440: '初期化中' : 'const char [37]' から 'int' に変換できません。 この変換が可能なコンテキストはありません。 c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2146: 構文エラー : ';' が、識別子 'IImageBytes' の前に必要です。 c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2470: 'IImageBytes' : 関数定義のようですが、パラメータ リストがありません。外見上の本体をスキップします。 c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2059: 構文エラー : 'public' c:\program files\microsoft platform sdk\include\gdiplusimaging.h(246) : error C2146: 構文エラー : ';' が、識別子 'id' の前に必要です。 c:\program files\microsoft platform sdk\include\gdiplusimaging.h(246) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません c:\program files\microsoft platform sdk\include\gdiplusimaging.h(246) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
>>751 最新の PSDK は VC6 では使えません。
>>752 初心者ですみません。
VC++2005ExpressのWin32アプリでGDI+使うには、
古いバージョンのPSDKをインスコすれば良いのでしょうか?
単に748と752の想定しているVC++のバージョンが違っただけでしょ。
つーかこのスレでいきなりVC6云々言い出す理由がわからんね。
エスパーしようとして失敗したんじゃない
757 :
デフォルトの名無しさん :2006/05/31(水) 00:39:20
VC6なんて使いにくいわー 会社もとっとと変えてくれ
759 :
デフォルトの名無しさん :2006/05/31(水) 01:11:14
760 :
デフォルトの名無しさん :2006/05/31(水) 01:35:17
761 :
748 :2006/05/31(水) 07:51:31
レスありがとうございます。
>>759 ホント初心者ですが、パスの設定はやりました。
このエラーが出るまでの過程ですが、
ファイルメニューの新規作成→プロジェクト→Win32コンソールアプリケーション
Win32アプリケーションウイザードでアプリケーションの種類を
Windowsアプリケーションを選択して完了して自動生成されたソースに
#include "gdiplus.h"
#pragma comment(lib, "gdiplus.lib")
の2行を追加しただけです。
762 :
デフォルトの名無しさん :2006/05/31(水) 10:35:19
763 :
デフォルトの名無しさん :2006/05/31(水) 11:14:46
あ、リンク間違えた。gdiplus1.htm でなくて
gdiplus2.htm 。猫でも・・・は、335章。
>>746 ,
>>757-760 VC の普通の使い方について答えてしまったかな?
764 :
sage :2006/05/31(水) 16:11:33
#include <vector> typedef std::vector<int> V; class C { public: const V& F() {return v_;} private: V v_; }; int main(int argc, char* argv[]) { C c; c.F(); return 0; } ランタイムライブラリを/MTにしてビルドすると LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 libcpmtd.lib(stdthrow.obj) : error LNK2019: 未解決の外部シンボル __CrtDbgReportW が関数 "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) で参照されました。 libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __malloc_dbg が関数 "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。 libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __free_dbg が関数 "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。 というエラーが出ます。 特定のライブラリの無視にlibcmt.libを書いてビルドしてもエラーがたくさん出てしまいます。 ランタイムライブラリが/MDdならエラーは出ないんですが、 /MTにしないとリンクエラーが出てしまう、とあるライブラリを使っているので、/MTでSTLを使いたいです。 何か方法はないでしょうか?
>>764 DebugとReleaseのライブラリちゃんと分けてる?
766 :
デフォルトの名無しさん :2006/05/31(水) 16:25:12
最近このソフトを導入して、まず hello worldのプログラムを打ってみたんですが、 DOS画面がすぐに消えてしまい出力結果が表示されません。 これはどのように設定を変更したらいいんでしょうか? 教えてください。よろしくお願いします。
デバッガなしで起動 設定はいじる必要なし
768 :
766 :2006/05/31(水) 17:27:00
いまどき16ビットかよ
> いまどき16ビットかよ 何を言いたいのか解説求む
772 :
デフォルトの名無しさん :2006/06/01(木) 22:42:31
n!を求めるプログラムを、do文を用いて書きなさい。 という問題なのですが、宿題スレで言うのも難なので、赤ペン先生していただけたら 幸いです。 /* N!のを求めるプログラム */ #include<stdio.h> int main (void) { int dig , sum ; do { printf("正の整数を入力してください。:"); scanf("%d", &dig); if (dig < 0) puts("\n負の数を入力しないでください。"); } while (dig < 0); if(dig == 0); puts("0の階乗は1です。"); else printf("%dの階乗は" ,dig); do { sum = dig * sum ; dig = dig - 1; } while(dig <= 1 ); printf("%dです。" ,sum); return(0); }
773 :
デフォルトの名無しさん :2006/06/01(木) 22:48:05
>>772 do-whileに入る前にsum=1;
while()の判定が逆、正解はwhile(dig>=1)
>773 γ関数は反則だろ。 >772 >775以上にこまごまと赤多いよ。 >int dig , sum ; sumが0だと正解が出ないよ。 int dig , sum = 1 ; >scanf("%d", &dig); scanfは癖があるからキーボードからの入力用としてはなるべく使わないほうがいい。 変数宣言の部分にこれを追加 char tmpstr[10]; scanfの行はこれに変更 dig=atoi(gets(tmpstr)); >printf("正の整数を入力してください。:"); これはputsで十分。 >puts("\n負の数を入力しないでください。"); "負の数の階乗は未定義です。"のほうが合っているとは思う。 >sum = dig * sum ; >dig = dig - 1; >} >while(dig <= 1 ); こう直しておく。ちょっとした違いだけどある意味では重要 sum *= dig; dig -= 1; } while(dig > 0 ); //不等号の向きが逆だったのも修正
777 :
772 :2006/06/02(金) 00:00:56
うまく、行きましたー☆ みなさん、超dクスです♪
>scanfは癖があるからキーボードからの入力用としてはなるべく使わないほうがいい。 >dig=atoi(gets(tmpstr)); 勘弁してください。
いえいえ、ようしゃしませんよ
よーしパパ、むちゃくちゃ長い文字列入力しちゃうぞー
781 :
デフォルトの名無しさん :2006/06/02(金) 02:24:45
/*数学を学ぶのなら兎も角、プログラムを学ぶのなら 階乗の問題って、再帰呼び出しがテーマでしょ したがって以下の通り*/ #include <stdio.h> /*プロトタイプ宣言*/ unsigned int factorial(unsigned int n); /*main関数*/ void main() { char ch; int dig; for(;;) { printf("正の整数を入力してください。: "); dig = 0; /*入力はコレで勘弁してください*/ while('\n' != (ch = getchar())) dig = ('0' <= ch && ch <= '9')? dig*10+ch-'0': dig; if(0 == dig) break; dig = (12 < dig)? 12: dig; /*オーバーフロー対策*/ printf("%d の階乗は、%d です。\n\n" ,dig, factorial(dig)); } } unsigned int factorial(unsigned int n) { return (1 < n)? n*factorial(n-1): 1; } /*しかし主題からドンドンはずれて行くな〜*/
783 :
デフォルトの名無しさん :2006/06/02(金) 02:54:22
これ
>>781 ならば、
少なくとも負の整数は入力不可能。
784 :
デフォルトの名無しさん :2006/06/02(金) 03:09:44
>>781 >>783 失敗失敗
unsigned char ch; int dig;
この方がいいな。
785 :
デフォルトの名無しさん :2006/06/02(金) 03:11:52
じゃなかった char ch; unsigned int dig; こうだ
786 :
781 :2006/06/02(金) 03:42:16
入力が 0! に対応してないや。 この際、如何でもいいが・・・。
chはチャンネルだと思うがdigは何の略?
デジタルだろ!
ううっ。知らなかった。
791 :
764 :2006/06/02(金) 13:57:02
>>765 ありがとうございます。
DebugとReleaseの存在自体知らなかった・・・。
dig は digit じゃないの? digital だと変じゃん、形容詞だから。
英語できんがなんで悪いとや
dig dug
795 :
デフォルトの名無しさん :2006/06/02(金) 22:26:37
visual c+ 2005でbutton1がクリックされたときに電卓を起動するにはどうすればいい? private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { } の中に記述すればいいのは分かった。
>>795 <cstdlib>をインクルードして、std::system("calc");
797 :
デフォルトの名無しさん :2006/06/02(金) 22:42:56
>>772 足し算じゃないのに"sum"は変だと思うh
英語の感覚では足し算の結果だけがsumではないんだ。 sumは総計というか「トータルではこんだけ」みたいな言葉なんだよ。 ここで英語に関して語るのも772みたいに宿題やるのもスレ違い。 (俺的にはC++じゃない795もスレ違いと言いたいがうるさそうなので我慢しておく)
そう言われて気が付いたが確かにC++でないな。
レスを全部読んだけど、EEに関する質問て、MSのページ見れば解決するものしかないじゃんw
英語のページがあるので拒否反応
読めなくてもいいが、読む努力くらいはしたほうがいいんじゃね
804 :
デフォルトの名無しさん :2006/06/03(土) 23:43:59
でも翻訳結果はすごいぞ。しかしMSの技術情報の翻訳にはかなわない。
英語の技術文書に拒絶反応示す奴は、素直にMSKKのサポートが付いた製品を買う方が幸せになれるよ。 つーか、決まり文句しか書いてない技術文書の英語ってそんなに難しいか?
自動翻訳された妙な日本語のほうが余程理解しがたい
英語勉強しとくと世界が広がるよ。 いや別に世界の人とお話が出来るよ、みたいな英会話教室の宣伝みたいなことを言うわけじゃなくて、 英語のドキュメントが読めると仕様書とか原典にあたれるから情報に正確になれる。 英語独特の言い回しに慣れると、日本語に翻訳されたドキュメントしか読めないときにも 「なんだこれ?クソ訳だなあ」と気が付いたり、もとの英文が想像ついたりして、 乗法が不正確なまま自分の身に入ってしまうことを防げる。 いいことづくめだよ。
英語ができてたら今頃プログラマなんかやってねーよ
クラス名や変数名は日本語をローマ字にしたもののほうが可読性が高い
811 :
810 :2006/06/04(日) 13:17:05
ということにしたいんです。ごめんなさい。
関数とか全部英語だからなぁ 入り交じるとアレだし
原文のマニュアル読んでいてもちょっとした助詞の訳し間違いで 創造と全然使い方が違ってしまって困ったことがよくある。 もうちょい英語は出来るようにならないとね。
814 :
デフォルトの名無しさん :2006/06/04(日) 14:17:31
日本語BASICもとい、日本語C++キボンヌ
>809 英語も読めるけど運転手やってた俺って・・・orz
817 :
781 :2006/06/04(日) 22:03:24
>>816 ハ〜?って感じ。
#define 関数 func って
出来るわけじゃないし。
プリプロセッサ自作でもするんですか?
>>817 お前、VC++2005使ったこと無いだろ。
#define shoshiki_seigyo_inji printf とか #define tasu + とかじゃまいか?
>>817 標準C/C++でも英数字と下線以外の識別子を使えるように独自拡張してもよいと規定されていたはず。
実際VC++ 2005ではできる。マクロ以外にも関数・変数その他全ての識別子に仮名漢字が使える。
#include <iostream>
#define 標準 std
#define 標準出力 cout
#define 行の終わり endl
#define 整数 int
#define 主処理 main
整数 主処理()
{
標準::標準出力 << "こんにちは、世界。" << 標準::行の終わり;
}
>>817 #define 整数 int
#define 復帰 return
#define 主関数 main
#define 書式付き印字 printf
#include<stdio.h>
整数 主関数()
{
復帰 書式付き印字("こんにちは世界\n");
}
ちゃんと通るよ。
\n が日本語じゃないのは、さすがに独自の日本語仕様printfを作るしかない?
822 :
821 :2006/06/04(日) 22:22:11
うわw
おもいきり
>>820 とケコーン
細かいこというと
>>820 はmainの戻り値が無いよって警告されそうな希ガス
メリットがない
>>822 C++ではmainに限ってreturnされずにmainの終わりに到達するとreturn 0;が行われるということになっている。
CはCでもC99ならやはりそうなっているけど、VC++はC99非対応だからCとしてコンパイルしたら警告になるな。
>>824 そうだったのか。今まで律儀にreturn 0;してたよ。
>>823 かなりこじつけだけど、外国人にソースコード盗まれたときに解読・改造が困難。
>>821 #define 改行 \n
#define 改行文字列 #改行
こうすれば下のように書けると思う。
書式付き印字("こんにちは世界" 改行文字列);
829 :
781 :2006/06/04(日) 22:53:57
わー便利。
いや便利ではないと思うぞ…
831 :
781 :2006/06/04(日) 22:59:58
HAHAHA
832 :
デフォルトの名無しさん :2006/06/04(日) 23:20:14
#define begin { #define end } と同じ匂いがするなw
833 :
781 :2006/06/04(日) 23:29:47
#define Rem /##/ #define Mod %
835 :
デフォルトの名無しさん :2006/06/05(月) 01:06:14
836 :
デフォルトの名無しさん :2006/06/05(月) 01:07:07
iso646.h もそんなノリだな。
837 :
デフォルトの名無しさん :2006/06/05(月) 02:37:51
警告を消すにはどうやるんだっけ?
脳内あぼーんで
839 :
781 :2006/06/05(月) 05:29:45
>>837 また初心者かな?
で、
>>776 みたいな初心者が答えて
>>778-780 が突っ込んだりして・・・。
という具合に、このスレからっぽなのは、今更だな。
俺も初心者??みたいなもんだしあぼーん
840 :
デフォルトの名無しさん :2006/06/05(月) 13:38:33
842 :
デフォルトの名無しさん :2006/06/06(火) 15:38:03
Visual C++ 2005 Professional Editionってないの?
これ、使うの面倒臭いね。インストールしたけどコンパイルがさっぱりわからねー やっぱBorland C++で良いや。容量少ないし手軽だし。
>>844 842はVSではなくVC++のみのProfessional版が欲しいとイウテハルン弥
ド素人だな
>>841 .Net用ってことは2003や2005用ではないってことじゃないの?
848 :
842 :2006/06/07(水) 07:58:51
845さんの解釈どおりです。わかりづらかったらすんません。 Visual Studio 2005 Professionalは高すぎるので 6.0のときのように個別販売ないのかと思って聞いたんです。
MSのサイトで調べたらわかることを質問するなボケ
90日だけ試用期間限定のProが添付している本をみっけ。 日付を弄るかOSの再インストールするなり、 リカバリでインストール前の状態に復元するなりして 継続して使えてまうがな
個別販売したとしても、アップグレード版を用意してくれなきゃ、 VS2005Proより安くは手に入らないだろう。
852 :
デフォルトの名無しさん :2006/06/07(水) 19:02:09
コンソールアプリケーションの作成で以下のサンプルプログラムをビルドしようとすると error C2871: 'System' : この名前を指定された名前空間は存在しません。 error C2653: 'Console' : 識別子がクラス名でも名前空間名でもありません。 error C3861: 'WriteLine': 識別子が見つかりませんでした とエラーを吐かれます。何か環境設定が必要なのでしょうか・・ #include "stdafx.h" using namespace System; int _tmain() { Console::WriteLine(L"Hello World\n"); return 0; }
>>852 CLRコンソールアプリケーションを選んでる?Win32のじゃダメだけど。
>>853 Win32選んでました・・
どうもありがとうございます
855 :
デフォルトの名無しさん :2006/06/07(水) 21:24:20
今2005使ってるのですが、rand()を使っても何故か0しか返らないのですが 理由がわかりません(´・ω・`) #include <time.h> 前はこれでsrandとタイムでセットしてランダム関数使えたのですが #include "stdlib.h" を指定してあげないとエラーが出てしまいます 教えてください ちなみにwin32コンソールプロジェクトを選んでます
そりゃrand()は<stdlib.h>内で定義されてるんだから当然だろ。
857 :
デフォルトの名無しさん :2006/06/07(水) 21:28:02
>>856 学校のやつは普通に指定しなくても使えたのですが
今さっき取ってきたこれはなぜか指定しないとだめだった(´・ω・`)
で、rand()でやっても0しか返らない・・・
>>857 rand() で 0 しか返らないことを示す小さなプログラムを作って晒してみるといいよ。
>>857 それ「学校のやつ」の方がヘンなんだよ。
Cならヘッダをインクルードしなくても関数が呼べるのは当然のことだろ。 良くないことだが。
861 :
デフォルトの名無しさん :2006/06/07(水) 23:09:03
学校ではlintを使わないのか?
いまどきlint……
いまどきC・・・・・・
864 :
デフォルトの名無しさん :2006/06/08(木) 15:42:17
プロジェクトのプロパティで,ビルド時にアセンブリコードをファイル出力する設定ができますが, これをどのプロジェクトでもデフォルトで出力するように設定したい場合どこをいじればいいのでしょうか。
いまどきC++…
じゃぁ今時なんだよ?
C#かな
いきなりC#から始めるって事か
そして量産されるC#バカ
Dサイコー
871 :
デフォルトの名無しさん :2006/06/09(金) 00:37:39
E言語はいい言語
インストールしてみました 割とどうでもいい事なんですが、スタートページにある 「開発者向け情報」とやらにアクセスできないみたいです 環境→スタートアップで入力するURLはどこにすればいいんでしょう どこかのRSSでも拾ってくればいいのかな
MFCをつかったVC++6.0のプロジェクトがビルドできない。 mfc42.lib ってどこよ。 苦労している人がたくさんいたと思いますが、新参者向けの FAQとかありませんか?
kmmallocというエラーチェック用に作られたmalloc関数が定義されている ソースを使おうとしています。 しかしながら、ソースコードを自分のプログラムに組み込んでコンパイル しようとすると LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc は既に memory.obj で定義されています。 というエラーが出てしまいます。 kmmallocのmalloc関数と従来のmalloc関数が競合しているので当たり前と いえば当たり前なのですが、従来のmalloc関数を無効化するやり方が 分からないのです。 どなたかお知恵を貸してください・・・!
ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.ja/dv_vccomp/html/7270b673-6711-468e-97a7-c2925ac2be6e.htm
877 :
875 :2006/06/09(金) 12:21:26
>876 回答ありがとうございます、早速試してみたのですが LIBCMTD.libをリンクしないようにすると error LNK2001: 外部シンボル "__RTC_CheckEsp" は未解決です。 等の大量のエラーメッセージが出てきてしまいます。 LIBCMTD.libのdbgheap.objの部分だけをリンクしないようにしないとダメなのかも? それとも自分のやり方が根本的にまずいのでしょうか?
自分でライブラリ作ったことがあればわかるはず
879 :
875 :2006/06/09(金) 14:06:13
ライブラリ作った事無いんで分からないっす・・・!
リリースビルドしたEXEの関数を逆アセンブラで見たいのですが、 デバッグ情報が無いといわれます。 リリースビルドした状態の関数を見たいのですが、どうやればいいですか?
つ 逆アセンブラ
Express 単体ではできないってことですか?
C/C
アセンブラを出力させればいいだろ。
885 :
デフォルトの名無しさん :2006/06/10(土) 15:56:20
プログラムの勉強したくてこれ使ってC言語をしようと思ったんだけど コンパイルでエラー出る もしかしなくてもC言語ってできないの・・・?
VC++は拡張子が.cならC言語として処理されるが・・・
>>885 IDEからはサポートされなくなってるね。CLコマンドでは出来る。
889 :
885 :2006/06/10(土) 16:28:57
すみませんがC言語をどういった手順で進めれば コンパイルできるか教えてもらえないでしょうか?
新規ファイルで拡張子Cでソース作るか 既存の拡張子Cのファイルを開く ビルド
コンパイルでエラーが出てるんだから コンパイルされてる。
892 :
885 :2006/06/10(土) 17:17:19
>>890 読み込みの場合
[ファイル]→[開く]→[ファイル]で
拡張子cのファイル読み込んではビルドできなかったです
新規の場合
[新規作成]→[プロジェクト]で[空の CLR プロジェクト]選んで
ソースファイルフォルダに[追加]→[新しい項目]で
C++ファイル選んで拡張子を変更してでいいのかな?
こちらはビルドできたんですが下のソースでやると
#include <stdio.h>
int main()
{
printf("Hello! C world!");
return 0;
}
以下のメッセージが出ました
------ ビルド開始: プロジェクト: sasa, 構成: Debug Win32 ------
コンパイルしています...
cl : コマンド ライン error D8045 : C ファイル '.\ge.c' を /clr オプションと共にコンパイルできません
ビルドログは " (長いので省略) " に保存されました。
sasa - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
なんだCじゃなくてCLRビルドしたいのか
>>892 Win32 コンソールのプロジェクトを選べ。
895 :
885 :2006/06/10(土) 19:02:58
[新規作成]→[プロジェクト]で[Win32]→[Win32 コンソール アプリケーション]選ぶと Win32 アプリケーション ウィザード というのが出てきたので [コンソール アプリケーション]で[空のソリューション]のみにチェックを付け完了 ソースファイルフォルダに[追加]→[新しい項目]でC++ファイル選んで拡張子を変更で さっきと同じソースでビルドしら以下のメッセージが出ました ------ ビルド開始: プロジェクト: ss, 構成: Debug Win32 ------ コンパイルしています... tt.c リンクしています... マニフェストを埋め込んでいます... ビルドログは " (長いので省略) " に保存されました。 ss - エラー 0、警告 0 ========== ビルド: 1 正常終了、0 失敗、0 更新、0 スキップ ========== 1 正常終了 となっているので大丈夫って事でしょうか? 次にデバック開始をしてみたら一瞬でコマンドプロンプトが出て消えました Hello! C world! と文字が出続けるかと思ったんですがこれは正常動作なんでしょうか?
897 :
885 :2006/06/10(土) 19:26:28
悩んでた問題が解決できて助かりました みなさん親切な説明ありがとうございます。
とりあえずの問題は解決しただろうが、 ネイティブアプリと.NETアプリの違いが分かってないとまた同じ事をしそうだな
それの違いってなんなんでしょうか?
オウム返しは嫌われるぞ
これで作ったアプリを実行するには .NET Frameworkが必要になっちゃうんですか?
アンマネージドで作れば.NETはいらない
903 :
901 :2006/06/11(日) 09:32:30
なにやら難しそう・・ Java+Eclipseばっかりの人間にはついていけない・・。
必要な場合もあれば、なくてもいい場合もあるというだけ つまり状況による
905 :
デフォルトの名無しさん :2006/06/11(日) 10:48:12
windows アプリって指定してSDKとwtlで作ってもですか
2005からVBだけ、デバッグしながらコード変更出来るようになったの? だとしたらVB6から乗り換えてもいいかな。 つーか、マネージド吐くんだからC#もそうしてくれ。
>>906 C#でもできる。C++でもできる。
少なくとも.NET 2003でもできる。
おそらく.NET 2002でもできる。
>>907 まじっすか?
ブレークポイントで止めて、コード変更たら再読み込みになった
と思うぞ(2003で)。
2005からの新機能だったかと。 C#で使えるのはホント。J#、C++/CLIは試してみるか。
J#、C++/CLIは×でした。
>>908 VCなら2003からできる。メンバ関数は2005からだった気もしないでもない。
ネイティブコードのC++は2005で出来ることを確認。2003は環境が無い。
.NET 2003のVC++でもエディトコンティニューという名称で使えるはずだ。
VC++6.0にもあった
>>906 VBは2003では無理だったが、2005から可能になった。
916 :
906 :2006/06/11(日) 17:24:34
>>909-915 乙&有難う。
もまいら良い奴らだな。
2005は少しはいけてる環境になったみたいだね。
VB6のスレで宣伝してくるよ。
VBは昔からデバッグ中の編集は可能だぞ。 但し、ブレークしたfunction/sub中の構造が変わるような修正はダメだが。
918 :
906 :2006/06/11(日) 18:02:20
そりゃぁIDEの所為じゃない罠。
920 :
デフォルトの名無しさん :2006/06/11(日) 22:29:25
GUIが進化してない
921 :
デフォルトの名無しさん :2006/06/12(月) 07:05:36
libファイルを追加する場合は、どうすればいいのですか? 「プロジェクト」→「プロパティ」→「構成プロパティ」→「リンカ」→「入力」→「追加の依存ファイル」 でいいんでしょうか? またこれはプロジェクトごとに指定するんですか? お願いします。
#pragma comment (lib,"hogehoge.lib")のが楽だろ
>>921 その方法と922の方法とは、どちらでも好きな方を使ってよい。
924 :
921 :2006/06/12(月) 16:54:12
>>921 じゃないけど
その2つは全く同じと考えていいんですか?
リソースで作ったダイアログに"Picture Contorl"でiconを貼り付けたのですが ダイアログエディタ上では正常に表示されるのに、実際にビルドしたアプリケーション上だと何も表示されません。。。 アイコンは32x32 16色です。 エロい人助けてorz
927 :
デフォルトの名無しさん :2006/06/12(月) 19:28:54
VISIBLE
>>927 true,falseと試してみましたがダメでした。。。
929 :
デフォルトの名無しさん :2006/06/12(月) 20:20:07
ルートフォルダ
931 :
デフォルトの名無しさん :2006/06/12(月) 20:45:39
知らん
Vistaだとなぜかヘルプの起動が速い
同じ.NET上のVBとVC#とVC++で実行速度を比較すると、 VB<VC#<VC++ で、よろしいんですか?
>>933 全く同じに書けば全く同じILになるので全く同じ速さになる、少なくとも理論上は。
>>934 それって速度が早くて難解なVC++ができるということで
まわりに尊敬の目でみられている俺に対する挑戦ですか?
うっひゃwww すごいのが来たなwww
>>935 934は.NETのプログラムの話だよ。
ネイティブの速度は別格。
>>935 難解ってなんだよwwww尊敬するぜwww
難解でマネージドの速度が他と変わらないVC++の存在価値ってあるのか
マルチになってしまうのですが・・・CLIスレは誰も居ないようなのでこちらに書きこさせてください。 内容は、text to speechを使って発声するプログラムを書いています。 発声のピッチとボリュームを変化させたく思っているのですが…。 using namespace SpeechLib; --------------------------- private: SpVoiceClass^ obj_SVC; --------------------------- //再生ボタンを押したとき String^ text = text_speak->Text;//テキストボックスの内容をtextストリームへ保存 obj_SVC->Speak(text,SpeechVoiceSpeakFlags::SVSFlagsAsync);//発声 //トラックバー(ピッチ) obj_SVC->SetRate((unsigned short)this->tone_level->Value); ------------------------- みたいな感じで書いています。 ツールで配置した再生ボタンとトラックバーについて、同じobj_SVCが使えるのでしょうか・・・・ コンパイルは通りますが、実際中身が入っていないようで・・・ どうしたらクラスを超えてobj_SVCを共有できるのでしょうか ちなみにテキストエリアに書いた文字を発声させることは出来ています。
>>940 もとスレに移動した旨の告知とこのスレへの誘導はして置けよな。
Speechうんぬんは全然わからないが、
単一のオブジェクトを共有したいならSingletonのラッパクラスを作ればいいのでは。
難解なのとはチームは組みたくないな
何か言った?
944 :
940 :2006/06/14(水) 01:34:43
>>941 ありがとうございます。
Singletonとはコンストラクタをprivateにすることだと思うのですが
GCクラスの中身を別途コピーのような形で作るということなんですかね…?
検討違いのことを言ってしまっている気がしますが…。
プログラミング初心者で申し訳ないっす。
945 :
デフォルトの名無しさん :2006/06/14(水) 01:48:30
C言語をやろうと思い導入しました ですがうまくいきません ヘルプの 方法 : Visual Studio で CLR をターゲットにした C++ プログラムをコンパイルする .NET クラスで C++ プログラムを作成し、Visual Studio 開発環境を使用してそのプログラムをコンパイルします。 この通りに設定してます しかし ------ ビルド開始: プロジェクト: C, 構成: Debug Win32 ------ コンパイルしています... Cプラス.cpp .\Cプラス.cpp(4) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ビルドログは "file://d:\My document\Visual Studio 2005\Projects\C\C\Debug\BuildLog.htm" に保存されました。 C - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== となってエラーになります
'熱伝導.exe': 'C:\Documents and Settings\ \debug\熱伝導.exe' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。 '熱伝導.exe': 'C:\WINNT\system32\NTDLL.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。 '熱伝導.exe': 'C:\WINNT\system32\KERNEL32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。 とデバッグすると出るのですが、どうすれば回避できるでしょうか?
>>947 マルチはヤメレ
被害が広がっても知らんぞ
949 :
945 :2006/06/14(水) 13:52:47
>>946 デバッグなしでできました
デバックありだとできませんね・・
一応実行できたのでd
950 :
940 :2006/06/14(水) 16:09:54
自宅からだとCLIスレがUnixペンギンウイルスで書き子できなかったんで・・ すんません。 そしてSpeechLibを使ったプログラム書いた経験ある方ってあんまり居ないんですかね・・・?
951 :
デフォルトの名無しさん :2006/06/14(水) 20:30:55
デザインの事で質問します。 ラベルの大きさが全く変わらないのですがどうしてなんでしょうか? また選択するとでてくる白いボタンのようなものも左上にしかでてこなく、操作も出来ません。 どうしたらよいのでしょうか。
ノストラダムス
エスパー降臨
>>934 どうも判らん。
以前、VB2005EEで書いたプログラムをVC++2005EE(C++/CLI)に書き換えたら、
実行速度が、格段にUPしたけどなぁ。
>>956 まさか、演算処理が多いプログラムで比較していないか?
U/I中心のプログラムだと殆ど変わらないぞ。
958 :
956 :2006/06/15(木) 14:50:32
なるほど、そういうことか。 確かに演算処理てんこもりのプログラムだった。 ということは演算処理中心のプログラムなら、VC++(マネージド)の出番ありって琴ですね。 折角VC++/CLIをやり始めたのに、VBごときと同程度だったらどうしようかと思った。 ありがと!
ライブラリ使わなければ高速
実行速度を比較するときの注意点だがC# やVB.NET はRelaseビルド以外で実行すると極端にパフォーマンスが落ちる。 またコマンドラインから直接何のオプションも無しでコンパイルした場合も同程度にパフォーマンスが悪い。 これはRelaseビルド(最適化あり)以外の場合に、デバッグのステップ実行時のコードの書き換えをサポートするために かなり実行効率の悪いコードを生成するためで、なぜか無オプションの場合も機能している。 Debugオプション時はこれに加えてJIT時の最適化も抑制する。 これに対してC++/CLRやJ#はデバッグのステップ実行時のコードの書き換えをサポートしていないため 非最適化モード時のスピードの劣化が少ない。とくにC++/CLRはDEBUGビルドでもJIT時の最適化を抑制していない。 比較する場合は最適化ありで比較しないと失敗の元。
961 :
デフォルトの名無しさん :2006/06/15(木) 22:32:01
ちょい長いが次のコードをもとにテストしてみた。このコードはC++/CLR用 using namespace System; int main(array<System::String ^> ^args) { const int MAXDIM = 30000; double sum = 0.0; Random^ rdm = gcnew Random(); array<double>^ dm = gcnew array<double>(MAXDIM); // double dm[MAXDIM]; for (int i = 0; i < MAXDIM; i++) dm[i] = rdm->NextDouble(); int tstart = System::Environment::TickCount; for (int i = 0; i < MAXDIM; i++){ int j = MAXDIM - i - 1; dm[i] = dm[i] * dm[j] + 1; } for (int i = 0; i < MAXDIM; i++) { for (int j = MAXDIM - 1; j > i; j--) { if (dm[i] > dm[j]) { double temp = dm[i]; dm[i] = dm[j]; dm[j] = temp; } }}
続き for (int i = 0; i < MAXDIM; i++) { int j = MAXDIM - i - 1; dm[i] = dm[i] * dm[j] - 1; } for (int i = 0; i < MAXDIM; i++) sum = sum + dm[i]; int tend = System::Environment::TickCount; Console::WriteLine("SUM = {0} : elpased = {1}", sum, tend - tstart); return 0; } 秒 2.283 C++ (native Cタイプ配列を使用) 2.594 C++/CLR(mix Cタイプ配列を使用) 2.834 C++/CLR(mix array配列を使用) 2.814 C# 3.795 VB(整数Overflowチェック有) 3.445 VB(整数Overflowチェック無)
C++でstd::vector使った場合の結果も知りたかった……
仕事でjavaアプリ作ってて、 今度趣味でフリーソフトでも作ろうかなと思ってます。 今現在、単体で動くアプリを配布しようとしたら VC++ 6が一番よいのかな? 2005で単体アプリを作ろうとすると 何かと勉強が要る感じですか?
>>963 追加でジェネリックのList<T>と std:vector<T> を追加。
固定配列よりだいぶ遅くなりました。
List<double>^ dm = gcnew List<double>;
std::vector<double> dm;
秒
6.089 C++/CLI(MIX List<T>使用)
6.610 C++/CLI(MIX vector<T>使用)
5.968 C++ (Native verctor<T>使用)
アホが何やってんだか
>>965 ちなみにreserveせずにpush_backとかやっていないよね?
>>968 push_backの部分は測定の範囲外。
for (int i = 0; i < MAXDIM; i++) { int j = MAXDIM - i - 1; dm[i] = dm[i] * dm[j] - 1; } どうみてもCにしか見えないな こんなものに.net使う意味があるのか?
>>964 その程度の認識じゃ何をやるにもかなりの勉強が要る感じ。
いまさら6.0を使うポジティブな理由は無いだろ。
>>970 >>933 からの流れでC#やVBよりC++/CLIが早いよ〜という意見への反証なのよ。
もちろん実用的なプログラムではない。
.netなのにあえて.net使わないプログラムか
まあそれを言ったらC++自体が C++なのにあえてクラス使わないプログラムか、とかあるわけで
そんなやつらはMS-Cでも買って使えばいい
Javaでクラス使わない方法教えてください
C++の最適化で、inline関数を自分でヘッダに書かなくて .cppの方にinline無しで書いても、勝手にinline展開されるんですか?
>>981 /Ob2 オプションが明示的または暗黙に指定されてると、そのとおり。
ありがとうございます
inlineを評価するかしないかはコンパイラ様の機嫌次第だし、 ついてない関数でもリーフ関数とかならインライン展開してしまうのは コンパイラ様の裁量の範囲内でOK?
986 :
デフォルトの名無しさん :2006/06/18(日) 07:16:40
visual c++ 2005 express editionをダウンロードしてwin32のアプリケーションを作ろうと ビルドした時に↓のようなエラーが出ます。どこが間違ってるか分かる人いませんか…? c:\documents and settings\user1\my documents\visual studio 2005\projects\aaaa\aaaa\stdafx.h(28) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory ビルドログは "file://c:\Documents and Settings\user1\My Documents\Visual Studio 2005\Projects\aaaa\aaaa\Debug\BuildLog.htm" に保存されました。
ノシ
'windows.h': No such file or directory の検索結果 約 120,000 件中 1 - 50 件目 (0.51 秒)
>>986 Platform SDKをインストールする必要がある。