★初心者にVisual C++を教えるスレ★ Part38
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/11/03(木) 00:54:48.61お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
【過去スレ】
Part37 http://hibari.2ch.net/test/read.cgi/tech/1299982561/
Part36 ttp://hibari.2ch.net/test/read.cgi/tech/1273939582/
Part35 ttp://pc12.2ch.net/test/read.cgi/tech/1256645713/
Part34 ttp://pc12.2ch.net/test/read.cgi/tech/1245382769/
Part33 ttp://pc12.2ch.net/test/read.cgi/tech/1235292263/
0410デフォルトの名無しさん
2012/07/16(月) 19:55:41.51作ってみれば・・・
0411デフォルトの名無しさん
2012/07/16(月) 19:56:29.59ソレ以外の番組も吉本芸人とかがクチャクチャくだらねえことやってるだけだし
そっちも問題視しろよwww
いやなら見るなとかホザいてたのも吉本芸人だっけ?ざまあねえなwww
0412デフォルトの名無しさん
2012/07/16(月) 21:29:30.21求める答えしか目に入れる気がないのかね。
0413デフォルトの名無しさん
2012/07/16(月) 21:45:56.11飲食店など韓国の自営業者が全国規模で、流通大手ロッテグループ製品の不買運動に乗り出した。
大型スーパーの進出で商圏を奪われ生き残りの危機に立たされているとし、コルモク(路地)商圏
生存消費者連盟と有権者市民運動が、酒類を扱う飲食店や宿泊業など小規模商工業者団体の
会員らとともに16日、不買運動を開始した。
これら団体は先月末、韓国チェーンストア協会に対し、大型スーパーの義務休業の順守やクレジット
カード手数料体系の改編受け入れなどを要求した。しかし成果が得られなかったことから、今月13日、
ロッテグループに闘争の意志を書面で伝えた。要求が受け入れられるまで無期限で不買運動を続ける。
ロッテグループのウイスキー「スコッチブルー」は国産ウイスキー市場で現在3位、焼酎「チョウムチョロム」
は「チャミスル」と激戦を繰り広げている。飲食店やカラオケ店でこれら酒類やミネラルウォーター、
清涼飲料が販売されなくなれば、ロッテは大きな打撃を受ける。
また、小規模商工業者側とその家族、市民団体を合わせた約600万人は、ロッテ百貨店やロッテマート、
ロッテスーパーなどの小売店を利用しないことにした。菓子類や氷菓、ハンバーガーなども不買運動の
対象とする。
さらに、外食分野などの小規模商工業者団体や市民団体にも、不買運動への協力を呼びかけている。
http://m.yna.co.kr/mob2/jp/contents_jp.jsp?cid=AJP20120716001400882&domain=6&ctype=A&site=0100000000&mobile
関連記事
韓国・ロッテ製菓など製造のアイスクリーム8種から基準値以上の細菌検出
http://news.livedoor.com/article/detail/6723748/
0414389です
2012/07/17(火) 00:01:07.73ダブルバッファリングを調べながら作ってみました。
ttp://blog.goo.ne.jp/masaki_goo_2006/e/d3c18365234ffb3383f5c30e32c83cf5
ここを参考に、
WM_CREATE→オフスクリーンのDC作成
WM_PAINT→オフスクリーンを表画面にコピー
動作確認の為に、WM_LBUTTONDOWN→描画する関数呼び出し
描画する関数→MoveToとLineToで線1本だけの処理
このように作ってみました。
しかし、初期は真っ白の表画面が、クリックすると真っ黒になってしまい、思ったような動作を確認することが出来ませんでした。
サンプルプログラムをほぼコピペしているのですが、どう言った原因なんでしょうか?
0415デフォルトの名無しさん
2012/07/17(火) 00:09:24.370416デフォルトの名無しさん
2012/07/17(火) 00:36:25.00コピペを理解しないままやってて必要な処理が抜けてるんだろ。でもそんなのこれだけの情報で分かるわけないだろが。
その練習用?のコードをどっかにあげてごらん。暇な人が教えてくれるから。
0417デフォルトの名無しさん
2012/07/17(火) 01:49:40.520418デフォルトの名無しさん
2012/07/17(火) 01:50:03.4312,13年前はよくやったがな
0419デフォルトの名無しさん
2012/07/17(火) 06:01:47.250420デフォルトの名無しさん
2012/07/17(火) 07:42:24.38http://engawa.2ch.net/test/read.cgi/poverty/1342475312/
統一費用準備で募金 前原氏
韓国統一省によると、ソウル訪問中の民主党の前原誠司政調会長は16日、柳佑益統一相との会談の席
で、李明博政権が将来の南北統一に備えて設けた「統一勘定」の積み立てに協力するとして、柳氏に募金
を託した。募金額は不明。
柳氏は「これは前原氏だけでなく日本国民の思いがこもったもの」と述べ、前原氏に感謝した。
韓国政府は、20年後に南北が統一すれば最低55兆ウォン(約3兆8千億円)のコストがかかるとの試算
を受け、統一を意識し備える風潮をつくろうと統一勘定を設け、国民に募金を呼び掛けている。(共同)
ソース:MSN産経ニュース 2012.7.16 23:13
http://sankei.jp.msn.com/world/news/120716/kor12071623150005-n1.htm
0421デフォルトの名無しさん
2012/07/17(火) 22:57:22.280422デフォルトの名無しさん
2012/07/17(火) 23:12:35.110423デフォルトの名無しさん
2012/07/17(火) 23:35:55.440424デフォルトの名無しさん
2012/07/18(水) 00:13:20.060425389です
2012/07/18(水) 00:27:55.82初期の真っ白画面→右クリック→描画された画面
となることが確認出来ました。いらないと思って一部省いていた処理を追加することで出来ました。
まだ、ダブルバッファリングの下準備の確認が出来た程度で、本来のプログラムは手付かずですが、調べながら頑張っていきます。
また分からなくて詰まった時に質問するかもしれないので、その時はよろしくお願いします。
0426デフォルトの名無しさん
2012/07/18(水) 09:03:42.13http://engawa.2ch.net/test/read.cgi/poverty/1342528699/
麗水エキスポ:1000ウォンの深夜入場券発行へ
麗水エキスポの入場者数が目標を大幅に下回っていることを受け、
韓国政府は1000ウォン(約69円)の深夜入場券を発行することを決めた。
http://www.chosunonline.com/site/data/html_dir/2012/07/17/2012071701101.html
0427デフォルトの名無しさん
2012/07/22(日) 00:48:28.12http://kohada.2ch.net/test/read.cgi/prog/1201041826/66
「export」キーワードが実装されたVC++のバージョンを教えてください。
0428デフォルトの名無しさん
2012/07/22(日) 00:51:15.23ちゃんとそのスレにここに書いた趣旨書いとけよ
0429デフォルトの名無しさん
2012/07/22(日) 00:58:10.22ありがとうございます。趣旨の件、了解です。
ところでないんですか?未実装な処理系って結構多いんでしょうか?
0430デフォルトの名無しさん
2012/07/22(日) 02:33:15.38イエス、ほとんどの処理系で実装されていない。
だから、2011年のC++の標準規格改定でexportの機能は廃止された。
0431デフォルトの名無しさん
2012/07/22(日) 11:37:50.16http://engawa.2ch.net/test/read.cgi/poverty/1342832178/
画面に残像が残る、いわゆる”焼付き現象”は今に始まったことではありませんが、Galaxy S IIIのマニュアルに記載されている「画
面劣化によるムラが発生した場合、サムスンは責任を負いません。」という一文(韓国版のみ?)が原因で、議論がいつもより激し
くなっているようです。サムスンはこの記述に対し謝罪し、内容の修正を行うとコメントしたそうです。
そうした中、Galaxy S IIIの焼付き現象について、韓国メディアのetnewsが検証を行いました。
検証に用いたのは、韓国版Galaxy S III LTEと、IPS液晶を搭載する「Optimus LTE II」。それぞれに白と黒のチェック柄を24時間連
続で表示させ続け、表示を元に戻した時の残像の様子を確認しました。
http://www.youtube.com/watch?v=OIqqnnb1LBw
結果、Galaxy S IIIでは、ホーム画面に戻った後にも、テスト用のチェック柄が画面に残りました。背景を青色にすると顕著です。一
方、液晶を採用するOptimus LTE IIでは画面の異常は確認できませんでした。
そしてその後12時間電源をOFFにし、再度確認してみても、残像は表示され続けたままでした。
焼き付きの原因は、AMOLEDで使われる赤、緑、青の発行体のそれぞれで寿命が異なることにあります。寿命が異なることで、同
じ時間発光させ続けることで、一部分だけが暗くなり、画面にムラが生じるというわけです。特に青は寿命が極端に短いとされてい
ます。
AMOLEDは高いコントラスト、応答性、構造的に薄くできるなど、液晶と比べて多くの利点もあります。しかし”寿命が短い”という欠
点も抱えているようです。今のところ根本的な解決は不可能で、寿命を延ばすことが最善策であるとされています。
しかし24時間でこうも簡単に焼き付くものなのですね。ここまで顕著な結果を望まなければ、あるいは数時間で焼付きを体験できる
かもしれません。しかも一度焼き付くと、元に戻すことはできません。
http://www.datacider.com/28903.php
http://www.datacider.com/wp-content/uploads/2012/07/galaxys3_barn.jpg
0432デフォルトの名無しさん
2012/07/22(日) 17:57:44.16みたいなHPってどうよ
ほかのページにも書いてあることをそのまま書いて自己満足してるだけじゃね?
車輪の再発明
この程度で、winプログラマなんて思ってるじゃないだろうねw
0433デフォルトの名無しさん
2012/07/22(日) 18:07:40.54プロジェクト名にAbcとすると、
CAbcApp,CAbcView,CAbcDocクラスが作成されますが、
これのプロジェクト名をDefに変えたいのですがどうすればいいですか?
0434デフォルトの名無しさん
2012/07/22(日) 18:49:55.10・事前に中間ファイルなど、なくてもいいファイルをすべて削除する
・ファイルやフォルダの名称を変更する
・grep置換が出来るテキストエディタで、プロジェクトフォルダ以下のすべてのファイルを全置換する
0435デフォルトの名無しさん
2012/07/22(日) 19:11:58.570436デフォルトの名無しさん
2012/07/22(日) 23:47:08.59データグリッドビューを使ったプログラムなんですが、
入力したパラメータの大小でそのパラメータの入力されている
セルの背景色を変えるようなプログラムを組みたいのですが、どうしたらいいでしょうか?
0437デフォルトの名無しさん
2012/07/22(日) 23:51:14.140438デフォルトの名無しさん
2012/07/23(月) 00:33:00.09だったら vc++ DataGridView セル 背景色 あたりでグーグル先生に聞いてくれ。(そっちの方が早い)
もし、アンマネージのグリッドのことでも、Microsft なんとかって最初から付いてたやつのことなら、普通に変えてたような気がするんだけど。
どっちか分からんのに調べるのもな。。。
環境はちゃんと書くようにしてくれ。
0439デフォルトの名無しさん
2012/07/23(月) 00:35:16.02それは、、一から教えるのは勘弁。
自分なら入力値の変更イベントで勝手に色を変えるラッパークラスなりを作るだろうけど。
0440デフォルトの名無しさん
2012/07/23(月) 00:43:28.62スレタイを声に出して読んでみて
0441デフォルトの名無しさん
2012/07/23(月) 01:04:13.930442デフォルトの名無しさん
2012/07/23(月) 01:07:03.22スレタイの 「を」 以降を声に出して読んでみて
0443デフォルトの名無しさん
2012/07/23(月) 02:50:44.150444デフォルトの名無しさん
2012/07/23(月) 04:50:56.380445デフォルトの名無しさん
2012/07/24(火) 17:55:09.70属国の歴史しか無くて、ずっと独自文化がゼロなのはなぜなのか本当に良く判るわw
< #`Д´> <うぎゃああああ!!フランス人までネトウヨの嫌韓厨だったニダーーー!!!ネトウヨ!ネトウヨ!ネトウヨ!!
■フランスメディア「KPOPに独自性は感じられない」「日本や米国の模倣」「商業主義」「つまらない」
パリで韓流コンサート「日本文化から韓国を知った」
2011/06/14(火) 09:45
一方、コンサートが終了した現在、当日の模様について報道しているフランスのメディアは
比較的少ない。この状況下、コンサートの模様を報じているのは、フランスのニュースサイト「Rue89」だ。
中でも目立つのが、K−POPは特に独自性が感じられないという意見だ。これまでフランスでファン層を
増やしてきたJ−POP、ひいては米国のポップスを踏襲しており、商業主義的な音作りだという意見や、
演奏がコンピューター管理されているためか野性味に欠けるといった意見が寄せられている。
http://news.searchina.ne.jp/disp.cgi?y=2011&d=0614&f=national_0614_016.shtml
0446デフォルトの名無しさん
2012/07/24(火) 19:18:30.860447デフォルトの名無しさん
2012/07/28(土) 09:12:38.31使用するキーは、「0」〜「9」の数字キー、プラスマイナスを判定する「-」キー、少数点の「.」キー、決定の「Enter」キーです。
WndProc(ウィンドウプロシージャ)内のWM_KEYDOWNメッセージで押されたキーを認識してるのですが、
case WM_KEYDOWN:
if( wp == VK_RETURN ){
エンターキー処理;
} else if( wp == '0'){
「0」キー処理;
}
こんな感じで数字とエンターキーは認識出来たのですが、「 - 」「 . 」この2つが認識できませんでした。
「 - 」「 . 」この2つが押されたことを認識する方法を教えてください。
XP VC++6
0448デフォルトの名無しさん
2012/07/28(土) 09:19:33.160449デフォルトの名無しさん
2012/07/29(日) 15:38:09.00うちとこでは WM_KEYDOWN の、
switch( wp ) {
case VK_SUBTRACT: // '-'
case VK_DECIMAL: // '.'
break;
}
で普通に行けたけど。
エンターキーとかが拾えてるなら、そこにブレークポイントを置いてキーを押してみればどんな値が来るか分かるじゃん。
分かったら例示にある VK_RETURN の「定義で移動」で定義元に飛んで、上で確認した値に該当する define 定義を見つけられるよ。
0450デフォルトの名無しさん
2012/07/29(日) 15:38:36.41x 解説
o 解決
0451デフォルトの名無しさん
2012/07/29(日) 15:44:29.600452デフォルトの名無しさん
2012/07/29(日) 20:12:47.400453デフォルトの名無しさん
2012/08/02(木) 17:50:09.68どうやって使うのですか?
using namespace System;
int main()
{
return 0;
}
エラー
'System' : この名前を指定された名前空間は存在しません。
0454デフォルトの名無しさん
2012/08/02(木) 17:55:33.04ttp://eternalwindows.jp/unmanaged/host/host01.html
0455デフォルトの名無しさん
2012/08/02(木) 19:17:26.38ありがとうございました
0456デフォルトの名無しさん
2012/08/07(火) 02:43:20.16C言語でシリアル通信を行ってデータの送受信を行おうと思っています。(Visual c++ 6のwin32api)
CreateFileやReadFile、WriteFileなどの関数を使って送受信をしようと思っています。
しかし、自分側のプログラムは(多分)出来たのですが、(通信)相手側がまだ完成していないので、
自分側のプログラムだけでも正しく動作してるのか確認(デバッグ)したいのです。
そこでPC2台を繋げて、自分のプログラムが通信(送信・受信)したいタイミングで、もう1台のPCからデータを送ったり、
受信した内容を確認したいのですが、どのように行えば良いでしょうか?
教授の助言では、teratermを使って・・・とのことですが。。。
teratermの使い方をいろいろ調べた結果、両方のPCでteratermを起動させ、A側で「a」を押すと、B側のteratermにaが表示される(その逆も)
くらいは出来たのですが、この方法を用いてVC6で作ったwin32apiの動作を確認する方法が分かりません。
0457デフォルトの名無しさん
2012/08/07(火) 08:34:21.71相手側のアプリの替わりにteratermを使うんだよ
0458デフォルトの名無しさん
2012/08/07(火) 10:44:06.560459デフォルトの名無しさん
2012/08/07(火) 21:09:11.54それをちっと弄って相手側の役割をするように変えてやればいいんじゃねーか?
0460デフォルトの名無しさん
2012/08/15(水) 01:15:26.56Windowsフォームアプリケーションを使用して、フォルダ作成プログラムを作ろうとしているのですが、
どうもうまくいきません。
フォームはテキストボックス、ボタンからなり、テキストボックスに文字列を入力し、ボタンを押すと
入力した文字列名でフォルダが作成されるというプログラムです。
書いたコードを以下のサイトに張り付けたので、どうすればうまくいくかご教示お願いします。
http://ideone.com/TWwHO
0461デフォルトの名無しさん
2012/08/15(水) 01:56:41.54using namespace System::Runtime::InteropServices;
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
System::String ^ str = this->textBox1->Text;
char* str1 = (char*)(void*)Marshal::StringToHGlobalAnsi(str);
_mkdir(str1);
}
0462デフォルトの名無しさん
2012/08/15(水) 10:10:11.140463デフォルトの名無しさん
2012/08/15(水) 10:19:51.110464デフォルトの名無しさん
2012/08/15(水) 12:49:30.440465デフォルトの名無しさん
2012/08/15(水) 21:42:56.31どんなトラップなんだと。w
0466デフォルトの名無しさん
2012/08/16(木) 16:32:01.020467デフォルトの名無しさん
2012/08/22(水) 18:02:31.68XMLファイルを読み込んで、配列かArrayListに格納するコードを書こうと思っています。
上記のようなことを行うにはどのような方法が簡単かつ適切でしょうか?
また、C#のようにXMLスキーマを用いて、データセットにXMLの値を格納する方法はC++でも可能でしょうか?
ぐぐっても半端な情報が散見するばかりで、少し途方に暮れています。
0468デフォルトの名無しさん
2012/08/22(水) 18:19:07.000469デフォルトの名無しさん
2012/08/22(水) 19:18:28.91ありがとうございます。
ただ、Boost導入は難しい環境にて作成しております。(情報不足で申し訳ありません
Boostを使わずに実現する方法はないでしょうか?
0470デフォルトの名無しさん
2012/08/22(水) 20:30:02.720471デフォルトの名無しさん
2012/08/23(木) 01:25:19.39・DeleteObject
・DeleteDC
・ReleaceDC
・DestroyMenu
・FreeLibrary
・DragFinish
・FreeConsole
・GlobalUnlock
・ReleaseMutex
・CloseHandle
・etc
なども処理されて無い場合確認できるものが存在するのですか?
0472デフォルトの名無しさん
2012/08/23(木) 01:33:38.730473デフォルトの名無しさん
2012/08/23(木) 17:51:53.90ありがとうございました
0474デフォルトの名無しさん
2012/08/26(日) 21:06:18.92XP以前ならクラシックスタイル
XPならXPスタイル
VistaならVistaスタイル
7なら7スタイル
で表示するようにするにはどうすればいいですか?
それぞれ別の設定でビルドするしかないですか?
0475デフォルトの名無しさん
2012/08/26(日) 21:52:41.140476デフォルトの名無しさん
2012/08/26(日) 22:45:28.41ありがとうございました
0477デフォルトの名無しさん
2012/08/26(日) 22:56:28.91<assemblyIdentity
・・・
name="この部分"
・・・
/>
<description>この部分</description>
タスクマネージャのプロセスタブにある「説明」の欄に表示されたり
プロパティでは表示されないみたいですが
また別物なんですか?
0478デフォルトの名無しさん
2012/08/26(日) 23:04:24.060479デフォルトの名無しさん
2012/08/26(日) 23:42:01.08内部で使用されるだけなんですね
0480デフォルトの名無しさん
2012/08/27(月) 00:43:56.58ソース上だと#defineで分岐するとビルド時のシステムに搭載されているCPUを気にしなくてもいいのですが
.xml上で自動で搭載されているCPUに合った値を使用する方法はありますか?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
またOSによってビジュアルスタイルが変わると思うのですが
dllを読み込むのだからOSが使用できるビジュアルスタイルが自動的に描画される
という認識であってますか?
0481デフォルトの名無しさん
2012/09/04(火) 01:45:17.53ダイアログにはリストボックスがあり、スレッドの中でリストボックスにアイテムを追加したいと考えています。
MFCを使用しています。スレッドは_beginThreadで呼び出しています。
リストボックスのオブジェクトを取得するために以下のようにして取得をしたいと考えています。
CListBox* List = (CListBox*)GetDlgItem(リストボックスのID);
この処理はダイアログ::OnInitDialog()のような継承を行った部分の中では問題なく使用できるのを確認したのですが、
これを使ってスレッド内でオブジェクトを取得するにはどうしたらいいか悩んでいます。
スレッドは以下のような関数を呼び出しています。
void Thread(void* p){
//処理
}
スレッドの中でリストボックスのオブジェクトを取得してリストボックスにアイテムを追加する方法の知恵を授けては頂けませんでしょうか
0482デフォルトの名無しさん
2012/09/04(火) 01:47:56.440483デフォルトの名無しさん
2012/09/04(火) 02:05:55.94なるほど
先にCListBox* List = (CListBox*)GetDlgItem(リストボックスのID);として
_beginThread(Thread,0,List);のように引数にListを渡すということでしょうか?
この考え方が間違ってたら申し訳ありません。
0484デフォルトの名無しさん
2012/09/04(火) 02:10:28.960485デフォルトの名無しさん
2012/09/04(火) 02:21:04.38それだと複数引数で渡したい場合は構造体にでも入れて渡せば問題なさそうです。
回答ありがとうございます。非常に助かりました。
0486デフォルトの名無しさん
2012/09/04(火) 21:56:06.00そもそもワーカースレッドの中で画面アイテムの更新て出来たっけ?
そう言う場合、リストボックスに入れるデータを格納したバッファなりを作って、スレッドではそこにデータを格納。
続けてウィンドウメッセージかなにかでウィンドウにメッセージを送ってメインスレッド(て言うんだっけ)でリストを更新、
て流れでいつも作ってた。
0487デフォルトの名無しさん
2012/09/04(火) 22:20:13.570488デフォルトの名無しさん
2012/09/05(水) 11:30:23.73Photoshop CS5のプラグインを作りたくて
Visual Studio 2010 Express (C++)をインストールして
次に、
PhotoshopCS5 SDK(forWindows)
ttp://www.adobe.com/devnet/photoshop/sdk.html
をダウンロード
試しにサンプルでもと思い。
「\adobe_photoshop_cs5_sdk_win\pluginsdk\samplecode\selection\selectoramashape\win」内の
「SelectoramaShape.vcproj」をダブルクリック!!
VS「変換ウィザードへようこそ」???→なんか知らんが、完了!
VS「変換中にエラーがあったよ」→閉じる。。。
ソリューションファイルからならイケる!(ってどっかのサイトに書いてあった)
VS「変換ウィザード。。。。
みたいな事になってます。
環境はWindows7で
変換レポートの中のエラーは
「Converting project file '***\SelectoramaShape.vcproj'Failed to upgrade platform 'x64'. Please make sure you have it installed under '%vctargetspath%\platforms\x64'
VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.
Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.
Failed to upgrade 'Debug|x64'. Please make sure you have the corresponding platform installed under '%vctargetspath%\platforms\x64'
The project configuration dimension name/value "(Platform, Win32)" was not found in the project manifest.
プロジェクトはアップグレードに失敗しました。
」です。
お願いします。助けて下さい。
0489デフォルトの名無しさん
2012/09/05(水) 11:51:15.84環境は64bit?
そのVC++はSDK追加して64bitコンパイルできるようにしてる?
0490デフォルトの名無しさん
2012/09/05(水) 11:54:32.792010用に書き換えるか、とりあえず2008で試してみては
0491sage
2012/09/05(水) 12:07:50.84>>490
なるほど。そういうことだったんですね。
ちょっと2008インスコしてきます。
2008も64bitコンパイルできるように設定しないとだめっすか?
0492デフォルトの名無しさん
2012/09/05(水) 12:21:23.20あとx64使えるようにするのは2008は面倒だよ。
そのエラーが出てプロジェクト開けないの?
開けてるならWin32のみ使えばいいんで問題ないと思うけど。
0493デフォルトの名無しさん
2012/09/05(水) 12:49:22.38あやうく2010消すとこでした。^^;
エラーが出てプロジェクトが開けないんです。
左のソリューションエクスプローラーに
・SelectoramaShape(利用不可)
プロジェクト ファイルはアンロードされました。
みたいな感じで表示されてます。
0494デフォルトの名無しさん
2012/09/05(水) 12:52:48.98ググって試してみりゃいい。
あとvcprojをテキストエディタで開いてx64のブロック消すとか
0495デフォルトの名無しさん
2012/09/05(水) 14:00:07.48VC++2008で64bitでビルド実行できるようになって、その後2010で使いたいなら
2008を残したまま2010インストール
→2010で64bitビルド実行できるようにする(テストプログラムでも作って確認)
→2010でSelectoramaShape?のソリューションを開く
→ウィザード変換
→プロジェクトのプロパティ->構成プロパティ->全般->プラットフォーム ツールセットv90でリビルド
→エラー無し確認後v90をv100にしてリビルド
→エラー無し確認
これで以降はVC++2010のみで管理可能になると思う
0496デフォルトの名無しさん
2012/09/05(水) 16:37:05.62__declspec(noinline) void __stdcall foo1(FOO h){
printf("%d %x %d %s", h.a, h.b, h.c, h.d);
}
__declspec(noinline) void __stdcall foo2(int a, int *b, long c, char *d){
printf("%d %x %d %s", a, b, c, d);
}
typedef void (__stdcall *FOO1)(FOO);
typedef void (__stdcall *FOO2)(int, void *, long, char *);
int _tmain(int argc, _TCHAR* argv[]){
FOO h = { 6, &h.a, 8, "abc", };
foo1(h);
((FOO1)foo2)(h);
foo2(h.a, h.b, h.c, h.d);
((FOO2)foo1)(h.a, h.b, h.c, h.d);
return 0;
}
最適化するとfoo2はfoo1と同じと見なされ、消えてしまいました。
しかし、呼び出し方は全く異なります。
foo2はpushで引数を入れていますが、
foo1はスタックポインタを進めて、全部movしていました。
するとfoo1は呼び出しコストが高くなるので
FOO2にキャストしてから呼んでみたところ
foo2と同じようにpushで引数を入れてくれました。
このような、引数と構造体の置き換えは、
アライメントが違ったり、浮動小数が入っていると
できない場合もあると思いますが、他にできないパターンが
あったら教えてください。
0497デフォルトの名無しさん
2012/09/06(木) 04:13:40.82え? 逆じゃないの?
プッシュはmuvより複雑で面倒な命令だから、実行時間が長くなるんじゃない?
試しに何回も呼び出しを繰り返させて実行時間を計ってみ?
0498デフォルトの名無しさん
2012/09/06(木) 11:03:53.54>え? 逆じゃないの?
>プッシュはmuvより複雑で面倒な命令だから、実行時間が長くなるんじゃない?
すみません、おっしゃる通りでした。
以下のようにベンチしたところ、若干foo1呼び出しの方が速かったです。
http://ideone.com/2rTrd
コードが明らかに長くなるので、それだけ見て勘違いしておりました。
となると、サイズより速度を優先する最適化で、pushをmovに置き換える
コードが生成されないのはなぜですか?
また、((FOO1)foo2)(h);の行が入っていない場合、
foo2はfoo1に統合されませんでした。
しかも、関数自体はfoo1より、統合されないfoo2の方が速かったです。
謎だらけです。
0499デフォルトの名無しさん
2012/09/06(木) 14:08:24.61>>495
ありがとうございます。
なんとかできました。
できたはできたんですが、
自分が作りたかったプラグインはすでに存在してました orz
0500デフォルトの名無しさん
2012/09/06(木) 15:42:04.15呼び出し時に構造体から変数に置き換えるか、関数内で置き換えるかの違いかと。
0501デフォルトの名無しさん
2012/09/06(木) 15:59:16.260502デフォルトの名無しさん
2012/09/06(木) 16:20:31.700503デフォルトの名無しさん
2012/09/06(木) 21:38:56.41関数内では構造体使わない方が速い
グローバル構造体宣言して使いまわすとか無しな
0504デフォルトの名無しさん
2012/09/07(金) 14:46:45.00time_t time = time(NULL);
struct tm *ptime = localtime(&time);
として、YYYYMMやMM:DDのような書式にあわせた日付を取得する方法としてどのような方法があるのでしょうか?
YYYYと書式を設定したら2012、YYYY/MMと設定したら2012/09のようになるイメージです。
0505デフォルトの名無しさん
2012/09/07(金) 16:52:48.330506デフォルトの名無しさん
2012/09/07(金) 16:55:36.66つ ttp://msdn.microsoft.com/ja-jp/library/fe06s4ak%28v=vs.90%29.aspx
0507デフォルトの名無しさん
2012/09/09(日) 04:03:06.58フィルタの振り分けとか
Main
->main.cpp
->main.h
ProjectName
->ProjectName.cpp
->ProjectName.h
自作外部ファイル用
->FileName1.cpp
->FileName1.h
->etc
こんな感じ?
0508デフォルトの名無しさん
2012/09/09(日) 13:41:30.090509デフォルトの名無しさん
2012/09/10(月) 09:34:58.52>>505 >>506
こんな関数があったんですね。わざわざURLまで貼っていただいてありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています