★初心者にVisual C++を教えるスレ★ Part24
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/09/15(金) 14:04:24Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
http://www.geocities.co.jp/Beautycare/4965/public/template.html
http://myu.daa.jp/osiete/
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
過去スレ、関連スレなどは>>2-5。
0002デフォルトの名無しさん
2006/09/15(金) 14:05:32Part23 ttp://pc8.2ch.net/test/read.cgi/tech/1140711893/
Part22 ttp://pc8.2ch.net/test/read.cgi/tech/1131443284/
Part21 ttp://pc8.2ch.net/test/read.cgi/tech/1124806288/
Part20 ttp://pc8.2ch.net/test/read.cgi/tech/1120222322/
Part19 ttp://pc8.2ch.net/test/read.cgi/tech/1116209988/
Part18 ttp://pc8.2ch.net/test/read.cgi/tech/1113539594/
Part17 ttp://pc8.2ch.net/test/read.cgi/tech/1107926989/
Part16 ttp://pc8.2ch.net/test/read.cgi/tech/1101022051/
Part15 ttp://pc5.2ch.net/test/read.cgi/tech/1097880265/
Part14 ttp://pc5.2ch.net/test/read.cgi/tech/1093672937/
Part13 ttp://pc5.2ch.net/test/read.cgi/tech/1089011118/
Part12 ttp://pc5.2ch.net/test/read.cgi/tech/1083585833/
Part11 ttp://pc5.2ch.net/test/read.cgi/tech/1077965179/
Part10 ttp://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※
Part09 ttp://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※
Part08 ttp://pc5.2ch.net/tech/kako/1063/10630/1063029371.html
Part07 ttp://pc5.2ch.net/tech/kako/1056/10562/1056280510.html
Part06 ttp://pc5.2ch.net/tech/kako/1052/10529/1052931903.html
Part05 ttp://pc5.2ch.net/tech/kako/1048/10486/1048698321.html
Part04 ttp://pc5.2ch.net/tech/kako/1044/10441/1044196393.html
Part03 ttp://pc5.2ch.net/tech/kako/1038/10381/1038160750.html
Part02 ttp://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part01 ttp://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
0003デフォルトの名無しさん
2006/09/15(金) 14:06:07■MFC相談室 mfc15d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1131958904/
Win32API質問箱 Build40
http://pc8.2ch.net/test/read.cgi/tech/1138893959/
鬱だ氏のう DirectX (Part 16)
http://pc8.2ch.net/test/read.cgi/tech/1133007002/
C言語なら俺に聞け! Part 122
http://pc8.2ch.net/test/read.cgi/tech/1139570025/
C++相談室 part47
http://pc8.2ch.net/test/read.cgi/tech/1139931895/
C/C++の宿題を片付けます 61代目
http://pc8.2ch.net/test/read.cgi/tech/1140039002/
【初心者歓迎】C/C++室 Ver.24【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1135828083/
【関連サイト】
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ ※変更された
http://msdn.microsoft.com/library/ja/
Platform SDK Update ※変更された
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
http://www.google.co.jp/
0004デフォルトの名無しさん
2006/09/15(金) 14:06:43part 1 ttp://piza.2ch.net/tech/kako/970/970607517.html
part 2 ttp://piza.2ch.net/tech/kako/981/981630730.html
part 3 ttp://piza2.2ch.net/tech/kako/993/993186053.html
part 4 ttp://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 ttp://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 ttp://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 ttp://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 ttp://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 ttp://pc5.2ch.net/tech/kako/1036/10368/1036897197.html
0005デフォルトの名無しさん
2006/09/15(金) 18:36:060006デフォルトの名無しさん
2006/09/19(火) 10:42:19乙
0007デフォルトの名無しさん
2006/09/23(土) 07:49:01FindWindowExでウィンドウを探し
BITMAP bmp;
HDC hDC = GetDC(hWnd);
HBITMAP hBitmap = (HBITMAP)GetCurrentObject(hDC, OBJ_BITMAP);
iRetFunc = GetObject(hBitmap, sizeof(bmp), &bmp);
のようにしているのですが、GetObjectで0が返ってきてしまいます。
GetLastError()は203を返してきます。
一体何がいけないのでしょうか??
0008デフォルトの名無しさん
2006/09/23(土) 10:36:11自分で用意したビットマップにBitBltする。
しかし、隠れている部分は描画されないので、前面に持ってくる等多少面倒。
それかWM_PRINT。
0009デフォルトの名無しさん
2006/09/23(土) 13:53:54ありがとうございます。
なんとかBMPに保存することができました。
隠れているウィンドウを前面に持ってくる、ということですが、
例えばFindWindowExで探したウィンドウがツールバーとかステータスバーとか
でもそのようなことは可能なのでしょうか。
SetWindowsPosあたりを使うのでしょうか。
すいませんが、もう少し教えていただけませんか?
0010デフォルトの名無しさん
2006/09/30(土) 10:58:42とてもちらつくんですけど
どうすればいいんでしょうか?
0011デフォルトの名無しさん
2006/09/30(土) 11:53:57アイテム内容を更新後に、
SetRedraw()->Invalidate()で表示を更新させる。
0012デフォルトの名無しさん
2006/09/30(土) 11:54:10でもこんなやり方でいいんだろうか…
0013デフォルトの名無しさん
2006/09/30(土) 12:01:05すみません、ありがとうございます
最初そのやり方でやってみたんですけど、どうしてもちらつくんです
結局LVS_EX_DOUBLEBUFFERを設定してみますた
XP以降しか動かないみたいですけど…
0014デフォルトの名無しさん
2006/10/05(木) 12:17:44特殊化の影響を受けないようなメンバ関数も、
それぞれの特殊化ごとに別々のインスタンスが作られるんですか?
たとえば
template <typename T>
class A{
T t;
public:
void test() {
std::cerr << "test\n";
}
};
のようなコードでは test() は T に依存しませんが、
それでも別々にインスタンスかされるんでしょうか?
0015デフォルトの名無しさん
2006/10/05(木) 12:37:43元のコード程度ならインライン展開されるから、関係ないだろうけど。
0016デフォルトの名無しさん
2006/10/05(木) 12:42:11自分で試してから質問しろという嫌味だろうか?
0017デフォルトの名無しさん
2006/10/05(木) 12:56:18特殊化の影響を受けない部分だけくくりだして継承すべき?
0018デフォルトの名無しさん
2006/10/05(木) 14:08:00規格ではどうなってるんだろ。
001915
2006/10/05(木) 14:13:38http://pc8.2ch.net/test/read.cgi/tech/1159340181/
>>16 そんな意図はないにょろ。
0020デフォルトの名無しさん
2006/10/05(木) 14:35:020021age
2006/10/14(土) 15:40:130022デフォルトの名無しさん
2006/10/14(土) 17:35:26VCは初心者スレしかないのはなんで?
0023デフォルトの名無しさん
2006/10/14(土) 20:57:17::と->の違いはなんですか?
0024デフォルトの名無しさん
2006/10/14(土) 21:33:40くだすれVisual C++があった。
この前1000までいったが、まだ次スレが立てられていない。
俺も試したがだめだった。もしよければ立てられるか試してみてほしい。
くだすれVisual C++(超初心者用)その3
http://pc8.2ch.net/test/read.cgi/tech/1150105712/l50
0025デフォルトの名無しさん
2006/10/14(土) 21:35:07C++を入門書からやり直せ。
0026デフォルトの名無しさん
2006/10/14(土) 22:01:57お前は人生やり直せ。do up!do up!
0027デフォルトの名無しさん
2006/10/14(土) 22:10:43プロファイルってどうやって使うんですか?
Visual Stdio .NET 2003です。
002827
2006/10/14(土) 22:12:080029デフォルトの名無しさん
2006/10/16(月) 11:25:01実行する際にDLLファイルが必要なんですよね?
当方Visual C++ 6.0は持っているのですがDLLファイルが
見つかりません。どのフォルダに入っているのでしょうか?
0030デフォルトの名無しさん
2006/10/16(月) 12:11:29必要な場合もあるし、必要無い場合もある。
必要な場合、何のDLLが必要か分からないと答えられない。
0031デフォルトの名無しさん
2006/10/16(月) 15:02:59これって、貼り付けてるエディットボックスやボタンを
サブクラス化しないと無理でしょうか
WM_KEYDOWNでEndDialogではうまくいきませんでした
0032デフォルトの名無しさん
2006/10/16(月) 15:09:350033デフォルトの名無しさん
2006/10/16(月) 15:34:00頑張って英語読んできます、thx!
003429
2006/10/16(月) 15:36:02説明不足ですね。申し訳ない
MFCAppWizardを使ってアプリケーションを作成した際に「MFCの共有DLLを使用」を選んだ場合の話です
確かMFC42.DLL(MFC42d.DLLだったかも)が必要とメッセージが出るのでそれが場所が知りたかったんです
0035デフォルトの名無しさん
2006/10/16(月) 15:51:40つ[検索]
そうそう、デバッグビルドは公開しちゃダメよ。
003631
2006/10/16(月) 17:31:23IDOKとIDCANCELが特別扱いされてるとは思いませんでした
ボタンにも別の名前を割り振っていたので
ボタンの名前をIODK,IDCANCELに変更したところ
目的の動作になりました
003729
2006/10/16(月) 17:58:26検索してみても引っ掛からなかったんですよ・・・
いまところ公開するつもりは無いです。ただ好奇心というか勉強というか
ところでデバッグビルドって何でしょうか?
0038デフォルトの名無しさん
2006/10/16(月) 18:03:310039デフォルトの名無しさん
2006/10/16(月) 18:06:49>検索してみても引っ掛からなかったんですよ・・・
試しにVisualStudioをインストールしていない漏れのPCで検索しても、
Program Filesの下からいくつも見つかったしsystem32のディレクトリからも見つかったが。
一体どこを検索したんだ?
>ところでデバッグビルドって何でしょうか?
リリースビルドじゃない方。要はMFC42d.DLLが必要な方。
004029
2006/10/16(月) 18:22:16デバックビルドとリリースビルドについてはおいおい調べていこうと思います。わざわざありがとうございます
>>39
検索の仕方が悪かったみたいです。いくつか見つかりました
MFC42.DLLがVisualStdioと関係無い所から複数見つかったんですがファイル名が同一ならば
内容は全て同じな気がするのですが、これをコピーしたら使えるのでしょうか?
0041デフォルトの名無しさん
2006/10/16(月) 19:51:250042デフォルトの名無しさん
2006/10/16(月) 23:06:16まあ、バージョンが一番新しいやつ(判らなきゃ作成日でもいい)をくれてやんな
0043デフォルトの名無しさん
2006/10/17(火) 09:57:40strcpy( item.pszText, name.c_str() );
の箇所で、ループ変数の j がいきなり 1 から 46 に変わっちゃうんだぁ。
でも、name を std::string から char[128] にして
item.pszText = name;
にすると、問題なくなったんだよ。どうしてなのか教えて!お兄ちゃん!!
for ( int j = 0; j < 3; j++ )
{
item.iSubItem = j;
char buf[5];
switch ( j )
{
case 0: // シーケンシャル番号
item.pszText = itoa( no, buf, 10 );
StubTable.InsertItem( &item );
break;
case 1: // 品番
strcpy( item.pszText, name.c_str() );
StubTable.SetItem( &item );
break;
以下略
}
}
0044デフォルトの名無しさん
2006/10/17(火) 10:20:40今自分でも試したんだけど、name を charポインタ にして
char* name;
・・・
item.pszText = name;
ならOKだけど、strcpy() を使った場合、
char* name;
・・・
strcpy( item.pszText, name );
では、charポインタでも駄目だったよ。(´・ω・`)
0046デフォルトの名無しさん
2006/10/17(火) 11:08:24char* p;
strcpy(p, "hoge");
これがダメな理由わかってないでしょ?
0047デフォルトの名無しさん
2006/10/17(火) 11:14:39WEBのMSDNではcannot be foundとでます
0048デフォルトの名無しさん
2006/10/17(火) 11:17:53見つかるけど。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxreference/commondialogboxfunctions/commdlgextendederror.asp
0049デフォルトの名無しさん
2006/10/17(火) 11:21:44日本語のほうだけ見てましたorz
次から英語もみよう俺
0050デフォルトの名無しさん
2006/10/17(火) 11:39:29速度的にどちらが早いのでしょうか?
0051デフォルトの名無しさん
2006/10/17(火) 11:42:39判ってないですぅ〜(´・ω・`)
0052デフォルトの名無しさん
2006/10/17(火) 11:45:32ポインタの勉強をやり直せ
0053デフォルトの名無しさん
2006/10/17(火) 11:48:36実装によるし、どんな操作をするかによっても変わるだろう。
自分で実験しろ。
0054デフォルトの名無しさん
2006/10/17(火) 11:57:55判りましたよ!!こういうことね!!
http://www.cmagazine.jp/src/kinjite/c/variable.html#index16
今頃判るなんて、もう笑うしかないね。( ゚∀゚)アハハ八八ノヽノヽノヽノ \ ・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・orz
0055デフォルトの名無しさん
2006/10/17(火) 20:34:42MSDNやネットを検索してみてもあまり引っかからなくて困っています。
どなたかMSFlexGridを詳しく紹介しているページなどご存知でしたら
教えてください。お願いします。
0056デフォルトの名無しさん
2006/10/17(火) 23:57:22つ[google]
0057デフォルトの名無しさん
2006/10/18(水) 00:00:200058デフォルトの名無しさん
2006/10/18(水) 07:31:14なんででしょう??
まず、上に
#pragma once
#include <string>
#include <cstring>
namespace 米 {
・・・・・・・
private: System::Void Form1_Load(Sy の中に・・・・・・
char ss1[80];
strcpy(ss1,"aaaa");
cout << ss1 << '\n';
string ss2;
ss2 ="bbbb";
cout << ss2 << '\n'; }
};
}
エラー表示・・・・・・・
エラー3error C2146: 構文エラー : ';' が、識別子 'strcpy' の前に必要です。
エラー6error C2146: 構文エラー : ';' が、識別子 'ss2' の前に必要です。
エラー1error C2146: 構文エラー : ';' が、識別子 ';' の前に必要です。
エラー5error C2065: 'string' : 定義されていない識別子です。
エラー7error C2065: 'ss2' : 定義されていない識別子です。
エラー4error C2065: 'cout' : 定義されていない識別子です。
まったく、同じに書いてるつもりなのに謎です?何ででしょうか?
0059デフォルトの名無しさん
2006/10/18(水) 07:34:00まずは動くところと動かないところを見つけれ
0060デフォルトの名無しさん
2006/10/18(水) 07:34:470061デフォルトの名無しさん
2006/10/18(水) 07:35:430062デフォルトの名無しさん
2006/10/18(水) 12:12:39このコンボボックスの座標位置の取得と設定を行いたいのですが、
どのようにしたらよいでしょうか?教えてください。
開発環境 VS2005 WinXP SP2 MFC
0063デフォルトの名無しさん
2006/10/18(水) 12:20:430064デフォルトの名無しさん
2006/10/18(水) 13:13:18調べたところSetWindowPos()関数で設定できそうです。
ありがとうございました。
006562
2006/10/18(水) 13:44:17SetWindowPos()の第一パラメータにコンボボックスのポインタを
指定したのですが、なぜかダイアログのサイズと表示位置が
変更されてしまいました。
申し訳ありませんが再度ご教授をお願いいたします。
0066デフォルトの名無しさん
2006/10/18(水) 14:05:44006762
2006/10/18(水) 14:49:31ありがとうございました。
0068デフォルトの名無しさん
2006/10/18(水) 18:49:14簡単なストップウォッチみたいなツールを自作したいのですが、使用するコントロールはどれが作りやすいでしょうか?
0069デフォルトの名無しさん
2006/10/18(水) 19:13:080070デフォルトの名無しさん
2006/10/18(水) 21:21:00<iostream>がインクルードしてなかったのが主のな原因みたいです。
0071デフォルトの名無しさん
2006/10/19(木) 08:27:57VCのスレッドでいうことでもないが、
msflexgridの使い方しらべるなら、VBで試してみるのが楽
やっぱりactivexはVBの方が格段に使いやすいからね
ちなみに、msflexgridはvs6のMSDNには載ってる
0072デフォルトの名無しさん
2006/10/19(木) 11:46:23VC.Netではどうやったらできますか?
0073デフォルトの名無しさん
2006/10/19(木) 13:27:41数ヶ月前からあるソルーションの開発を始めましたが、
最近フォームデザイナが不安定になり、今日ついに
致命的なエラーです。(Exception from HRESULT:0x8000FFFF(E_UNEXPECTED))
というエラーが出て、フォームを表示してくれません。
但し、ビルドは出来ますし、また実行ファイルの実行も問題なく出来ます。
フォームの編集がまったく出来ない状態です。
何をどうすればよいのでしょうか?親切な方、よろしくお願いします。
0074デフォルトの名無しさん
2006/10/19(木) 13:57:57ウインドウを常に最前面に表示させたいです。
[新しいプロジェクト]-[CLR]-[Windowsフォームアプリケーション]
で作成したプロジェクトを使用しています。
ATL の CWindow::BringWindowToTop() を使用してみましたが
ビルド時にエラーが出てしまいます。
(C2065: 'CWindow' : 定義されていない識別子です)
CWindowクラスのヘルプを見て、stdafx.h に
#include "atlwin.h"
を追加しビルドしたところ エラーが出ます。
(C1189: #error : atlwin.h requires atlbase.h to be included first)
stdafx.h に
#include "atlbase.h"
を追加しビルドすると
(C3641: 'InterlockedExchangePointer' : /clr:pure または /clr:safe と共にコンパイルされた関数に対する呼び出し規約 '__stdcall ' が無効です)
のようなエラーが たくさん出てしまいます。
プロジェクトの作成時に[ATL]を選ばなかった場合は、対処方法はないのでしょうか?
#include が足りないのでしょうか?
よろしくお願いします。
0075デフォルトの名無しさん
2006/10/19(木) 14:09:420076デフォルトの名無しさん
2006/10/19(木) 15:00:33VC++.NETで、プログラム実行時に最初に開くフォームを変更するにはどうすればいいのでしょうか
VBであればプロジェクトのプロパティの先頭ページにあったのでわかりやすかったんですが・・・・
プロパティ見てみてもフォームを指定しているらしきところが見つかりません
どうか、お願いしますorz
007774
2006/10/19(木) 15:17:30どうもです。その反応だと、
最初に ATL 選ばなきゃなんでしょうか (汗
ってことは MFC も後付は ダメ?
SDK(?)を直接呼ぶ(?)感じですか・・
ジブンなりに CLR ATL MFC を見てみます。
0078デフォルトの名無しさん
2006/10/19(木) 15:39:53.NET frameworkでいいじゃん。
0079デフォルトの名無しさん
2006/10/19(木) 16:04:37プロジェクトのプロパティの構想プロパティの全般にある共通言語ランタイムサポートを、
純粋 (/clr:pure)や安全 (/clr:safe)から、ただの(/clr)にすればATLも使える。
もっとも、お前がやりたいことくらい、.NET Frameworkでもできると思う。
俺はろくに使ったことがないけど。
008074
2006/10/19(木) 17:45:03どうもです。
.NET Framework でいってみます。(今のところ わかってませんが)
今までフレームワークってのは C++ とか C# とか VB とか
のエディタ&デバッグツールのことだと思ってました。(ぉぃ
さらっとググって 今 気になるのは、
.NET Framework を使用して開発することで
ランタイムが入ってない環境で 動作するのか?
というとこですが この辺りも含めて 理解してみます。
また 来ちゃうかも。ありが�d
0081デフォルトの名無しさん
2006/10/19(木) 18:20:090082デフォルトの名無しさん
2006/10/19(木) 18:23:09dotnetfx.exe
vcregist_x86
008374
2006/10/19(木) 19:42:00this->TopMost = true;
・・・・すんごい まわり道した気が。 orz
.NET Framework を勘違いしていたことと
ウインドウを Form と認識してなくて ヘルプをスルーしてました。
>>81
挫折しそうでしたが助かりました。
=CLRなら ビルド時にランタイム必要ないようにできそうな感じですね。
それでもランタイムが必要そうなら
>>82
で解決しそうですね。
vcregist_x86 はヒットしなかったので 必要になったら再度見てみます。
>>78 >>79 >>81 >>82
サンクスです☆
0084デフォルトの名無しさん
2006/10/19(木) 20:38:110085デフォルトの名無しさん
2006/10/20(金) 16:40:17そもそも、フォームデザイナは、フォーム用のヘッダファイルと1対1対応になっているのだろうか?
それとも、他に何かファイルを参照しているのだろうか?
また、#pragma region Windows Form Designer generated codeの部分で、
コメント行や、タブの一つ一つまで管理しているのだろうか?
(つまり、コメント行やタブなどを、削除or追加しても、影響が出るのだろうか?)
別にわざわざそんなことをするつもりは無いが、最近頻繁にフォームデザイナの
奇妙な振る舞いやエラーが目立ち始めたため、そのいじってはいけない部分を見てみると、
インデントがずれていたりしているもんで、ちょっと気になった次第。
どなたか意見頂戴。
0086デフォルトの名無しさん
2006/10/20(金) 17:25:34自作カーソルを作ろうと思っているところです。
ですが、リソースエディタで使える色は白と黒のみで、
色のついたカーソルが作れません。白と黒ではなく、赤と黒の2色という感じでもかまわないので、
どうにかできないでしょうか?よろしくお願いします。
なお、OSはWindows XP SP2です。
0087デフォルトの名無しさん
2006/10/20(金) 18:23:50namespace こちら葛飾区亀有公園前派出所 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
void ryoutu(int nakagawa);
......
}
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
ryoutu(5);
}
void ryoutu(int nakagawa){
textBox1->text = Convert::ToString(nakagawa);
}
};
}
これってなにがちがう?初歩的な質問ですみません。
0088デフォルトの名無しさん
2006/10/20(金) 20:21:40VC6は仕事先にしか無いので確認できないが、
メニューの「イメージ」に、他のサイズや色数を追加するコマンドがあったと思う。
>>87
日本語でおk
0089デフォルトの名無しさん
2006/10/20(金) 21:03:12キモイお前。
日本語でしゃべろ。
0090デフォルトの名無しさん
2006/10/20(金) 22:15:01早速の返事ありがとうございます。88さんの言うとおり、
メニューの「イメージ」の項目で、16色デバイスに変更することで出来ました(^ ^)。
0091デフォルトの名無しさん
2006/10/20(金) 22:16:36Linuxマシンで実行しようとしてるところ。
0092デフォルトの名無しさん
2006/10/20(金) 23:14:29素人にも分かりやすくお願いします。
0093デフォルトの名無しさん
2006/10/21(土) 15:41:54-> StretchBlt ( 0 , 0 , myRECT.Width() , myRECT.Height() , &myDC, 0 , 0 , 200 , 200 , SRCCOPY ) ;
こうですか?わかりません!これだとしっかりサイズに合わせて表示できません。
ちなみにピクチャボックスのサイズは200x200です><
0094デフォルトの名無しさん
2006/10/21(土) 17:13:530095デフォルトの名無しさん
2006/10/21(土) 17:51:59あーこういうことですか?
-> StretchBlt ( 0 , 0 , ピクチャボックス横 , 縦 , &myDC, 0 , 0 , ビットマップ横 , 縦 , SRCCOPY ) ;
ビットマップの横と縦のサイズはどうやって取得するんですか( ;・∀・)?
0096デフォルトの名無しさん
2006/10/21(土) 18:37:43参考サイトがみつからない。。
参考サイト等ご存知でしたら教えてください><
0097デフォルトの名無しさん
2006/10/21(土) 20:29:22CBitmap bmp; // 転送元ビットマップ(仮)
BITMAP bm;
bmp.GetBitmap(&bm);
0098デフォルトの名無しさん
2006/10/23(月) 00:13:44プログラムを書いたのですが、処理中にフォーム上でクリックすると
固まってしまいます。
処理中にも使用したいボタンがひとつあるのでthis->Enabled=false;
は使えません。どうすればいいでしょうか?
0099デフォルトの名無しさん
2006/10/23(月) 00:18:190100デフォルトの名無しさん
2006/10/23(月) 00:18:34> 〜固まってしまいます。
//ここまで第一話
//ここから第二話
> 処理中にも使用したいボタンがひとつあるのでthis->Enabled=false;
0101デフォルトの名無しさん
2006/10/23(月) 19:50:32で音を再生しているのですが、音量の調節が出来ないのですが、どうしたら良いでしょうか?
やはり、WindouwsMediaコントロールというのを使わなければ出来ないでしょうか?
ただ単に、メディアプレーヤーのMAX音量でWAVファイルが再生されればいいだけなのですが・・・
0102デフォルトの名無しさん
2006/10/23(月) 19:57:20知らない
0103デフォルトの名無しさん
2006/10/23(月) 19:58:04知らない
0104デフォルトの名無しさん
2006/10/23(月) 20:15:59要素の追加の仕方がよくわかりません。
MFCです。
std::vector< std::vector<CString> > m_list;
std::vector<CString> temp;
こんな感じで定義してm_listにtempのベクターでの配列を追加できるようにしたいのですが
いろいろ試してみても型が違うなどのエラーでうまくいきません。
すいませんがソースが手元にないためあいまいな質問かもしれまんせんがよろしくお願いいたします。
m_list.push_back(temp);
などは試してみましたがだめでした。
0105デフォルトの名無しさん
2006/10/23(月) 20:26:59char型にint型の変数を代入するプログラムを作りたいのですが
コンパイルで通っても機械を動かすときにエラーがでて強制終了
になったり値が入らないのでどうか教えてください
まずsvalue にint型の値が入っていて
strcpy(Signal,(const char*)svalue);
上記でchar型のSignalに値を入れて
strcpy((char*)connection[index].sendData,Signal)
上記でconnection[index].sendDataに値を入れたいのですが
svalueの値がなぜか入らないのです
char型に値を入れる別の方法や
間違ってる箇所がございましたら
ご教授ください・・・おねがいします
0106デフォルトの名無しさん
2006/10/23(月) 20:31:14まず、スレ違い
0107デフォルトの名無しさん
2006/10/23(月) 20:35:08のですがどうすればいいですか?説明緒蒼ヌんでもわか
らないし、自分で色々やったんですが困りはてています
少しちっちゃくしたいんですが‥
0108105
2006/10/23(月) 20:39:08すいませんでした
0109デフォルトの名無しさん
2006/10/23(月) 20:55:21C++が使える人来てくれませんか?
http://ex16.2ch.net/test/read.cgi/news4vip/1161592926/
0110デフォルトの名無しさん
2006/10/23(月) 23:02:17ツール→オプション→フォントサイズ→テキストエディタ
あたり。
VC6の詳しいことは忘れた。
0111デフォルトの名無しさん
2006/10/23(月) 23:45:04> m_list.push_back(temp);
これはうまくいくはず。
0112デフォルトの名無しさん
2006/10/24(火) 00:02:02本当に、本当にありがとうございます!
ファイル分割しないといけないくらい大きなプログラム
なのにデフォのフォントがやたら大きすぎて半泣き
でした。ありがとうございました!
0113デフォルトの名無しさん
2006/10/24(火) 01:36:28任意の時点でメインのプログラム側から起動した外部プログラムを終了させたいのですが、
こういったことは可能でしょうか?
CreateProcess() や ShellExecute() で外部プログラムを起動することはできるのですが、
起動したプログラムを終了させる方法がわかりません。
どんな方法でも良いのでどなたかわかる方がいればお願いします。
0114デフォルトの名無しさん
2006/10/24(火) 03:46:36殺す手段もあるが、本来死ねと言うのに留めるべき。
#勿論その場合、子プロセスは安全に死ぬ義務があるわけだが。
0115113
2006/10/24(火) 04:09:26色々調べたところそういったやり方が一般的なようなので試してみたのですが、
#include<windows.h>
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam){
PROCESS_INFORMATION* pi = (PROCESS_INFORMATION*)lParam;
DWORD lpdwProcessId = 0;
::GetWindowThreadProcessId(hWnd, &lpdwProcessId);
if(pi->dwProcessId == lpdwProcessId){
::PostMessage(hWnd, WM_CLOSE, 0, 0);
return FALSE;
}
return TRUE;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR lpCmdLine,int nCmdShow){
STARTUPINFO si;
PROCESS_INFORMATION pi;
::ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWNORMAL;
::CreateProcess(NULL, "notepad.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
MessageBox(0,"メモ帳を終了させます。","Message",0);
EnumWindows(EnumWindowsProc, (LPARAM)&pi);
::CloseHandle(pi.hThread);
::CloseHandle(pi.hProcess);
return 0;
}
この場合は上手くいくのですが、
>MessageBox(0,"メモ帳を終了させます。","Message",0);
この部分をコメントアウトすると上手く動かなくなってしまいます。
0116デフォルトの名無しさん
2006/10/24(火) 08:39:39先ずは問題切り分けてね
たとえば、なんでenumwindows使うの?とか
0117113
2006/10/24(火) 14:05:41自らが起動したアプリケーションを終了させるには、
CreateProcess()で起動させプロセスハンドルを保持し、
TerminateProcess()で終了させることができるが、
これは強制終了なので安全な終了方法ではない、
とWebで調べていて見つけました。
では安全な終了方法とはどんなものなのか、と調べたところ、
ウィンドウハンドルを取得しWM_CLOSEを送るのが一般的だ、
と書かれていたのでその方法を試してみました。
しかし、プロセスハンドルから直接ウィンドウハンドルを取得するAPI等はないようなので、
全てのウィンドウハンドルを取得した上で、GetWindowThreadProcessId()を呼び、
取得したプロセスIDがCreateProcess()で取得したプロセスIDと一致するか調べ、
一致した場合、そのアプリケーションにWM_CLOSEを送る、ということでプログラムの終了をしました。
ここで、全てのウィンドウハンドルを取得する方法としてEnumWindows()を使っています。
この処理には下記のWebページを参照しました。
ttp://akky.cjb.net/mfc/appclose.html
それと、 MessageBox(0,"メモ帳を終了させます。","Message",0);
の部分を Sleep(10000);
としても正常に動きました。
どうやらいくらかの待ちを入れてやると正常に動くようです。
011895
2006/10/24(火) 14:39:44こんな感じに今なってるんですが
CImage img;
CBitmap *myBMP;
img.Load(FileName);
myBMP=CBitmap::FromHandle(img);
myDC.CreateCompatibleDC(pDC);
CBitmap *oldBMP=myDC.SelectObject(myBMP);
pDC->StretchBlt(0,0,200,200,&myDC,0,0, ??? , ??? , SRCCOPY);
やっぱこのハテナのところがわかないんです(´;ω;`)
よろしくお願いします。。。
0119デフォルトの名無しさん
2006/10/24(火) 14:57:01CImage使えるのかよ!
だったらCImage::StretchBlt使え。
転送元矩形指定無しのを使えば全体が描画されるから。
ちなみに >>97 の件は、BITMAP構造体の中身を見れば判る。
012095
2006/10/24(火) 15:04:40今MFCのダイアログベースでやってるんでゲスよ。
CImage::StretchBltをやってみたらWinアプリケーションみたいな引数を要求されたでげす。
ワケワカメだょ、くまぇりだょ。。。。
0121デフォルトの名無しさん
2006/10/24(火) 16:39:55つ CDC::GetSafeHdc()
つ CDC::operator HDC ()
0123デフォルトの名無しさん
2006/10/24(火) 23:59:02CImage img;
img.Load(FileName);
img.StretchBlt(*pDC, 0, 0, 200, 200);
0124デフォルトの名無しさん
2006/10/25(水) 10:48:29エディットコントロールで文字の中央揃えをしたいのですが
Create時に指定するのではなく動的に変更する場合
どのようにしたらいいでしょうか?
0125デフォルトの名無しさん
2006/10/25(水) 11:10:380126デフォルトの名無しさん
2006/10/25(水) 11:51:03申し訳ありません、まだよく分からないので
できたら具体的なコードを記述していただけると
ありがたいです。
よろしくお願いいたします。
0127デフォルトの名無しさん
2006/10/25(水) 11:53:53http://wisdom.sakura.ne.jp/system/msnet/msnet_win24.html
0128デフォルトの名無しさん
2006/10/25(水) 12:12:32出来ました。ありがとうございます。
0129デフォルトの名無しさん
2006/10/25(水) 18:41:26#ifdef DLL_EXPORTS
#define TEST_API __declspec(dllexport)
#define CALL_RULE __stdcall
#elif DLL_IMPORTS
#define TEST_API __declspec(dllimport)
#define CALL_RULE __stdcall
#endif
class TestD {
public:
TEST_API CALL_RULE TestD();
TEST_API virtual CALL_RULE ~TestD();
};
というクラスを作ったとします。これをリリース構成でDLLにしたものを、
利用側のコードで利用(newとdelete)するとします。
このとき、デバッグモードで実行するとdeleteの所でヒープエラーが起こります。
デストラクタのvirtual指定をはずすとdeleteでヒープエラーは起きずに正常に破棄できます。
原因はおそらく次のURLにある事だと思うのですが、
ttp://homepage2.nifty.com/tulip-an/soft/scrwrpprblm.html
「デバッグ構成時はデバッグビルドDLL、リリース構成時はリリースビルドDLLとリンクする」
という以外の回避方法はありませんでしょうか。このままだと継承によるポリモーフィズムができません。
0130デフォルトの名無しさん
2006/10/25(水) 19:16:030131デフォルトの名無しさん
2006/10/25(水) 20:43:24もちろんHeapAlloc/Freeでメモリ確保・解放。
0132デフォルトの名無しさん
2006/10/25(水) 22:03:22MFCを使っています。
ある読込用のファイルを読み込んでそのファイルの内容を
CString型の変数に格納したいのですがうまくいきません。
ファイルの読み込み方もざっと調べたところ
fopen使ったりifstream使ったりと、どれを中心に調べてよいのかよくわからない状態です。
読み込めたかな?と思っても最終的にCString型じゃなくて型が違う言われエラーになってしまいます。
どうすればスマートに読込→格納ができるでしょうか?
0133デフォルトの名無しさん
2006/10/25(水) 22:03:51最初のプログラム
pDC->TextOut(0,0,"Hello, Visual C++");
がいきなり実行されません!↓こんな感じよ
error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : 3 番目の引数を 'const char [6]' から 'const CString &' に変換できません。(新しい機能 ; ヘルプを参照)
理由: 'const char [6]' から 'const CString' へは変換できません。
class 'ATL::CStringT<BaseType,StringTraits>' のコンストラクタが 'explicit' と宣言されています。
この本破いていいですか!winXP Home .NET2005 女Dカップです☆
教えてくれた人先着にメルアド教えるわ♪
0134132
2006/10/25(水) 22:05:26読込用のファイルには1行の文字列がずらっとならんでいます。
1万文字にはなりますが・・・
0135デフォルトの名無しさん
2006/10/25(水) 22:06:390136デフォルトの名無しさん
2006/10/25(水) 22:09:38TextOutAにするか
0137デフォルトの名無しさん
2006/10/25(水) 22:16:110138デフォルトの名無しさん
2006/10/25(水) 22:19:07意図して使い分けているなら別だが。
0139デフォルトの名無しさん
2006/10/26(木) 00:06:19new/deleteの多重定義ってやったことないのですが、そんなに対処が難しい問題なんでしょうか・・・。
0140デフォルトの名無しさん
2006/10/26(木) 00:27:320141デフォルトの名無しさん
2006/10/26(木) 11:27:00検索結果や各種情報を表示しているDataGridのようなコンポー
ネントはなんというんですか?
使いかたも教えてください
0142デフォルトの名無しさん
2006/10/26(木) 11:40:020143デフォルトの名無しさん
2006/10/26(木) 11:50:07DelphiのVCLだから、VCにはない
0144デフォルトの名無しさん
2006/10/26(木) 12:01:54Winny1はVCで作成されたはずです。
Winny1でも同じようなコンポーネントを使用しているのですが
、Winny1配布サイトを忘れたため見本?をお見せできないんで
す。
とりあえずスクリーンショットとバージョン1を用意します。
http://a-draw.com/uploader/src/up2669.jpg.html
http://a-draw.com/uploader/src/up2670.zip.html
0145デフォルトの名無しさん
2006/10/26(木) 12:27:58CLitsCtrl じゃないの?
0146デフォルトの名無しさん
2006/10/26(木) 13:44:410147141
2006/10/26(木) 14:34:53CListCtrlでした
本当にありがとうございました!
0148デフォルトの名無しさん
2006/10/26(木) 14:56:510149デフォルトの名無しさん
2006/10/26(木) 15:06:46windowsフォームアプリケーションで
keybd_eventを使用する方法について教えてください。
[新規作成]-[新しいプロジェクト]-[空のプロジェクト]
の後、ソースファイル test.cpp を作成し
#include <windows.h>
int main(void) {
keybd_event('A',0,0,0);
}
を入力すると正常にビルドされるのですが、
[新規作成]-[新しいプロジェクト]-[windows フォームアプリケーション]
で作成される Form1 にボタンを配置し、そのボタンのスクリプトに
keybd_event('A',0,0,0);
を入力、
stdafx.h に
#include <windows.h>
を入力するとビルド時にエラーが発生します。
(error LNK2028: 未解決のトークン (0A00000E) "extern "C" void __stdcall keybd_event(unsigned char,unsigned char,unsigned long,unsigned long)"
(?keybd_event@@$$J216YGXEEKK@Z) が関数 "private: void __clrcall test37::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)"
(?button1_Click@Form1@test37@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) で参照されました。)
(error LNK2019: 未解決の外部シンボル "extern "C"・・・)
ヘルプによると リンカツールエラーということらしいのですが
どういうエラーなのかのかと、解決方法を教えてください。(長文スマソ)
0150デフォルトの名無しさん
2006/10/26(木) 15:20:030151デフォルトの名無しさん
2006/10/26(木) 16:06:280152デフォルトの名無しさん
2006/10/26(木) 16:18:40ライブラリをリンク
0153149
2006/10/26(木) 16:38:40#pragma comment(lib, "user32.lib")
を追加したところ ビルドできました。�d☆
-[空のプロジェクト]
だとライブラリのリンクが不要で
-[windows フォームアプリケーション]
だとライブラリのリンクが必要になるのは、ちょっと不思議。
逆なら直感的に納得できるのに・・・
0154デフォルトの名無しさん
2006/10/26(木) 17:01:230155竹田箴言
2006/10/26(木) 17:04:41どなたか教えてください。
また、Cで使うrandomizeはC++では
どうなるのでしょうか。
0156デフォルトの名無しさん
2006/10/26(木) 17:22:00まずはCと同じようにやってみたらどうだ?
0157デフォルトの名無しさん
2006/10/26(木) 17:23:04Winと関係ないからCまたはC++のスレへ
0158デフォルトの名無しさん
2006/10/26(木) 17:49:03for(int x = 0;x < X;x++)
p[x] = new Class*[Y];
for(int x = 0;x < X;x++)
for(int y = 0;y < Y;y++)
p[x][y] = new SubClass();
としました
これを解放するために
for(int n = 0;n < X;n++)
for(int m = 0;m < Y;m++)
delete p[n][m];
for(int n = 0;n < X;n++)
delete [] p[n];
delete [] p;
としたらエラーが出ました
何が問題なのでしょうか?教えてください
0159デフォルトの名無しさん
2006/10/26(木) 17:50:330160デフォルトの名無しさん
2006/10/26(木) 19:43:03この板で聞いてるんだから、CryptAPIの事なんだよ。
初期化の必要は無い。
安心して使ってくれ。
0161デフォルトの名無しさん
2006/10/26(木) 23:07:42bad_alloc例外使えないみたいですが
どうすれば使えますか?
0162デフォルトの名無しさん
2006/10/26(木) 23:46:44XMLファイルを読み込みそのファイル内容にある行を挿入し
別ファイル名で保存するようにしたいと考えてます。
CStdioFile ofp;
CString buf;
int i;
ofp.Open("c:\\test.xml", CFile::modeCreate | CFile::modeWrite);
ifp.Open("c:\\read.xml", CFile::modeRead);
i=0;
while(TRUE){
if(ifp.ReadString(buf)==NULL){
break;
}
if(i==9){
ofp.WriteString("てすと\n");
}
ofp.WriteString(buf + "\n");
i++;
}
ifp.Close;
ofp.Close;
このような感じでこの場合は10行目に行を挿入するように組んだのですが
XMLファイルはUTF-8のコードのせいか挿入する行に全角があると文字化けがおこり
うまく書き込みができませんでした。
UTF-8と指定して書き込みする方法はないかと探しましたが
ネット上ではうまく情報がみつかりませんでした。
何かしら方法はありますでしょうか?
0163デフォルトの名無しさん
2006/10/27(金) 00:24:29標準C++だと、bad_allocがあるのは<new>。
0164デフォルトの名無しさん
2006/10/27(金) 01:25:39WideCharToMultiByteでUTF-8に変換してから書き込む
0165デフォルトの名無しさん
2006/10/27(金) 14:40:36WinXP SP2 VS2005を使用しています。
MDIでメニューから子ウィンドウを新規で表示したいのですが、
どのように作成したらよいか分かりません。
ご教授をお願いいたします。
0166デフォルトの名無しさん
2006/10/27(金) 14:53:13ウィザードでMDIにしたら最初からそうなってると思うけど
0167デフォルトの名無しさん
2006/10/27(金) 15:12:38メニューに新しい項目を追加して、その項目がクリックされた時に
あらかじめ作成したフォームビューを表示したいのです。
どうしたらいいでしょうか?
0168デフォルトの名無しさん
2006/10/27(金) 17:31:540169デフォルトの名無しさん
2006/10/27(金) 17:37:43分かりにくくてすみませんがよろしくお願いいたします。
0170デフォルトの名無しさん
2006/10/27(金) 17:48:42フォームではなくビューです。
0172デフォルトの名無しさん
2006/10/28(土) 23:26:31の内容をコピペして動かしたのですが、
「"0x5f477f58"の命令が"0x03ed0183"のメモリを参照しました。
メモリが"written"になることはできませんでした。」
と表示されてエラーになります。
ここ(ttp://grugru.mine.nu/file.cgi?v=guru_guru_4626.zip)に
ソースをうpしておきましたので、直すべき点を指摘していただけませんか?
0173初心者
2006/10/28(土) 23:36:00他の.exeファイル実行できるようにどうすればいいですか??
0174デフォルトの名無しさん
2006/10/28(土) 23:40:200175デフォルトの名無しさん
2006/10/28(土) 23:50:08CString ss = "notepad.exe";
ShellExecute(m_hWnd,"open",ss,args,NULL,SW_SHOWNORMAL);
0176デフォルトの名無しさん
2006/10/28(土) 23:52:27CString args;
そもそも質問の答えになっているのかわからんが
0177デフォルトの名無しさん
2006/10/28(土) 23:53:20マルチは市ね
0178デフォルトの名無しさん
2006/10/29(日) 02:29:28突っ込み所がありすぎたので、大幅に書き換えた。
http://grugru.mine.nu/file.cgi?v=guru_guru_4636.zip
このアーカイブのファイルで上書きしてビルドしる。
差分画像の作成はCMyDoc::OnMenuHyoujiで処理している。
元のソースと比較すれば見当はつくはず。
あと、2バイト文字をファイル名に使うの禁止な。
0179デフォルトの名無しさん
2006/10/29(日) 09:18:52どれほど違うのでしょうか?
それぞれの移行なんかは難しいものなのでしょうか?
VC++2005には問題もあり、いまだにVC++6.0を使い続けているという人も
いると聞きますが……いったいどこから入ればいいのやら……。
0180デフォルトの名無しさん
2006/10/29(日) 09:31:04初心者の場合はVC++じゃなくてC#がお勧め
VCじゃなくてCやC++がやりたいならVC++2005でもいい。
0181デフォルトの名無しさん
2006/10/29(日) 16:30:26わざわざありがとうございました。本当に助かりました。
>あと、2バイト文字をファイル名に使うの禁止な。
今後気をつけます。
0182デフォルトの名無しさん
2006/10/29(日) 20:47:24特にそれほど変わるというわけでもないのですね。
ゲームをつくりたいので、ゲーム制作にC#はあまり向かないと聞いたのですが……。
あと、C#は配布するのが面倒というようにも聞きました。
VC++2005がよいのですね。
0183デフォルトの名無しさん
2006/10/29(日) 20:57:42無料だし、とりあえず触ってみると良いと思うよ。うん。
0184デフォルトの名無しさん
2006/10/30(月) 00:38:45VC++ 2005 で、デフォルトで予約語が青色になりますが、
これに予約語を追加する方法はないでしょうか?
自分で typedef した、よく使う型を青色に変えたいのです。
0185デフォルトの名無しさん
2006/10/30(月) 02:00:25あとは適当に見てけばある
0186デフォルトの名無しさん
2006/10/30(月) 08:30:25うー、見つからないです・・・
おそらく、単語一覧?を記述したテキストか何かを読み込ませる必要があるため、
ファイルを選択できる、エディットボックス+"▼" の組を特に探したんですが・・・。
0187デフォルトの名無しさん
2006/10/30(月) 11:38:14特定のアドレスとポートに対して、ポートが開いているかどうかを
判定するプログラムを考えていますが、どのクラスのメソッドを
使えばいいでしょうか。
TcpClient.Connectだと、レスポンスがとても遅いです。
一瞬で判定できるメソッドなどないでしょうか。
0188デフォルトの名無しさん
2006/10/30(月) 14:26:05SDIであらかじめ用意されているCWinApp::OnFileOpenを使うときに、
ファイル名を取得するにはどうすればよいのでしょうか?
0189デフォルトの名無しさん
2006/10/30(月) 14:40:090190デフォルトの名無しさん
2006/10/30(月) 16:41:02usertype.datでググれ。
0191デフォルトの名無しさん
2006/10/30(月) 17:01:58CMDIFrameWndクラス内のON_COMMANDイベントハンドラ内で
CMDIChildWndクラスのOnCreateClientイベントを呼ぶことって出来ますか?
0192デフォルトの名無しさん
2006/10/30(月) 18:33:33はぁ?
それは呼ばれるものだ
0193デフォルトの名無しさん
2006/10/30(月) 22:37:50いけました、ありがとうございました!
0194デフォルトの名無しさん
2006/10/31(火) 11:56:26ダイアログにユーザーIDを入力するエディットと
JSPを起動するボタンがあります。
JSP起動時にユーザーIDを引数として渡すことは
可能でしょうか?
0195デフォルトの名無しさん
2006/10/31(火) 14:53:190196デフォルトの名無しさん
2006/10/31(火) 15:27:52in the current string, performing the same role
as the size() function.
らしいので、まったく同じということなんですね。
length() も size() も内部では '\0' をスキャンしているのでしょうか?
あと、resize() と reserve() の違いがわかりません。
0197デフォルトの名無しさん
2006/10/31(火) 16:34:20二つ以上のMIDI(a.mid,b.mid等)を同時に鳴らしたいのですが、
指定されたMIDIデバイスは既に使用されています。開放されるのを待ち、再実行してください。
とのエラーがでます。
二つ以上のMIDIファイルを同時に再生することは可能なのでしょうか?
0198デフォルトの名無しさん
2006/10/31(火) 18:32:15std::basic_stringが内部で保持する文字列はヌルで終わっている必要はない。
まあどうせc_str()があるし、ヌル終端させておく実装が多いとは思うけど。
reserveは予めメモリを確保しておくだけ。
resizeを呼ぶと、後のsize()の戻り値は、resizeで指定した値になる。
reserveを呼んでも、後のsize()はreserveを呼ぶ前と変わらない。
現在確保しているメモリの量はcapacityを呼ぶとわかる。
reserveを呼ぶとcapacity()の大きさは、reserveの引数に指定した値以上になることが保障される。
勿論reserveを呼んだとき以外でもcapacityは変化する可能性はある。
標準ライブラリのコンテナは何かにつけて多めにメモリを確保する傾向がある。
0199デフォルトの名無しさん
2006/10/31(火) 20:56:57UNIX におけるドットファイルに相当するユーザ毎の設定ファイルの置き場を探しています。
0200デフォルトの名無しさん
2006/10/31(火) 21:09:070201デフォルトの名無しさん
2006/10/31(火) 21:27:42それぞれにボタンを配置し、クリックすると各ペインの
サイズを拡縮したいのですが、どのようにしたらよいでしょうか?
0202デフォルトの名無しさん
2006/10/31(火) 21:33:420203デフォルトの名無しさん
2006/10/31(火) 21:40:16CSplitterWndクラスののCreateViewで作成しました。
0204デフォルトの名無しさん
2006/10/31(火) 21:45:08> 二つ以上のMIDIファイルを同時に再生することは可能なのでしょうか?
サウンドカードによるんじゃないか?
ってプログラミングの話か?
0205デフォルトの名無しさん
2006/10/31(火) 21:50:08CSplitterWndのメンバ関数でできなかった?
ビューからやる方法がわからないということ?
0206デフォルトの名無しさん
2006/10/31(火) 21:53:14プログラミングの話です。
新VisualC++6.0のサンプルを見ながら実装してみたのですが、
二つ以上同時再生ができませんでした。
何か方法のでしょうか。
0207デフォルトの名無しさん
2006/10/31(火) 21:57:42方法が分かりませんでした。
0208デフォルトの名無しさん
2006/10/31(火) 22:39:270209デフォルトの名無しさん
2006/10/31(火) 23:06:550210デフォルトの名無しさん
2006/11/01(水) 08:31:35メインフレーム
スプリッタ
こんな風になってると仮定して
appのポインタわかれば
app->メインフレーム->スプリッタ
メインフレームのポインタわかれば
メインフレーム->スプリッタ
0211207
2006/11/01(水) 11:57:39GetParentFrameで親フレームのポインタを取得することで
CSplitterWndクラスのメンバ変数にアクセスできました。
ありがとうございます。
0212207
2006/11/01(水) 14:58:59現在アクティブなペインを取得するため、GetActivePane関数
を使用しようとしたのですが、
error C2248: 'CSplitterWnd::GetActivePane' : protected メンバ
(クラス 'CSplitterWnd' で宣言されている) にアクセスできません。
というエラーが出てしまいました。解決方法を教えてください。
0213207
2006/11/01(水) 15:11:520214207
2006/11/01(水) 23:28:02分割バーがドラッグされたかどうかを認識するため、
CSplitterWndの派生クラスを作成し、OnLMouseDown、
OnMouseMoveイベントをマップしたのですが、なぜか
関数がよばれません、なにかほかに必要なことがあれば
教えてください。よろしくお願いいたします。
0215デフォルトの名無しさん
2006/11/02(木) 18:48:27分割バーまでいじるんだったら
自分で分割ウインドウ作った方が簡単じゃないか?
0216207
2006/11/02(木) 20:39:47派生クラスのメンバ変数を作成していないのが原因でした。
お騒がせいたしました。
0217デフォルトの名無しさん
2006/11/02(木) 21:26:270218207
2006/11/02(木) 21:45:22>派生クラスのメンバ変数を作成していないのが原因
ではなく
派生クラスのメンバ変数を使用してスプリッタウィンドウ
を作成していないのが原因
です。
0219デフォルトの名無しさん
2006/11/03(金) 08:34:32あります。指定は、プロジェクトのプロパティのプリプロセッサでしています。
構成を Release にしたときに、このマクロで #ifdef している部分が「アクティブな
プリプロセッサブロック」となってしまいます。Release のときは IntelliSense で灰色に
してほしいのですが、どのようにすればよいでしょうか。
0221デフォルトの名無しさん
2006/11/03(金) 10:41:58引数を調べるプログラムで
int _tmain(int argc, _TCHAR* argv[])
{
int i;
printf("argcは %dです。\n",argc);
for(i=0; i < argc; i++)
printf("argv[%d]=%s\n", i, argv[i]);
printf("おしまいっ!\n");
rewind(stdin);
getchar();
return 0;
}
a.exe abc def
と引数を入れても、
Visual C++ 2005では C a d と、最初の1文字しか出ません。
277 名前: デフォルトの名無しさん [sage] 投稿日: 2006/11/03(金) 10:28:05
>>276
Unicode文字列をascii文字列として出力しようとしているから。
詳しくはVSスレなりどこへでも。
とのことですが、
どうすればいいのでしょうか
0222デフォルトの名無しさん
2006/11/03(金) 11:01:27環境依存になるが、UNICODE/非UNICODEどちらの設定でもコンパイルできるようにしたければ_tprintf。
0223デフォルトの名無しさん
2006/11/03(金) 11:18:25出来ました
ありがとうございます。
0224デフォルトの名無しさん
2006/11/03(金) 13:52:39誘導したやつが間抜け
あとwprintfや_tprintfとかいらんこと教えられて今後の人生が思いやられる
0225デフォルトの名無しさん
2006/11/03(金) 16:43:53アホか
0226デフォルトの名無しさん
2006/11/03(金) 19:06:30起動する実行ファイル名を取得したいのですが
可能でしょうか?
VS2005 MFCを使用しています。
0227デフォルトの名無しさん
2006/11/03(金) 19:17:58STDのvectorや、size_tなどVC++内に組み込まれている関数を、
int や double のように水色で表示させる方法を教えてください。
0228デフォルトの名無しさん
2006/11/03(金) 19:54:27たぶんgetで始まるapiで可能
>>227
水色は知らない
0229デフォルトの名無しさん
2006/11/03(金) 20:44:45ツール→オプション→フォントおよび色
もしくは
usertype.dat
0230デフォルトの名無しさん
2006/11/03(金) 21:18:50m_pszExeName
0231デフォルトの名無しさん
2006/11/04(土) 01:07:480232デフォルトの名無しさん
2006/11/04(土) 01:36:210233デフォルトの名無しさん
2006/11/04(土) 10:10:03デバッグ時に標準ライブラリ関数にステップインする方法を教えて下さい。
ソースをインストールして、マイコードのみステップインを無効にしましたがNGでした。
もちろん、デバッグのときにはステップイン操作を行っています。
お手上げです。
0234デフォルトの名無しさん
2006/11/04(土) 10:43:000235デフォルトの名無しさん
2006/11/04(土) 10:57:43class CBase { ... public: virtual int vfunc() = 0; }
class A : public CBase { ... public: int kazuA; int vfunc() { return kazuA; } }
class B : public CBase { ... public: int kazuB; int vfunc() { return kazuB; } }
...
... std::vector<CBase*> objList;
... objList.push_back( static_cast<CBase*>( new A ) );
... objList.push_back( static_cast<CBase*>( new B ) );
0236デフォルトの名無しさん
2006/11/04(土) 11:08:42>... objList.push_back( static_cast<CBase*>( new B ) );
この場合static_castはイラン。
ダウンキャストは別にダメではない。
dynamic_castがあるし、オブジェクトの本当の型がわかっているのならstatic_castでもいい。
0237デフォルトの名無しさん
2006/11/04(土) 11:27:42>>233です。
>標準ライブラリのソースをどっかから盗んできてexpressに入れたということ?
Platform SDK についていたソースをインストールしました。
たとえば、printf()にステップインしたい場合どうすればよいのでしょうか?
盗人じゃないよ(^^;)
0238デフォルトの名無しさん
2006/11/04(土) 11:34:19ステップインは普通にやれば勝手に中に入っていく
0239デフォルトの名無しさん
2006/11/04(土) 15:03:23メインウインドウの中にいくつかエディットコントロールや
ボタンを配置したいと思っているのですが、
ダイアログボックスを作ってそれをメインウインドウにはめ込む
なんていうことはできるのでしょうか?
何個もCreateWindowを書くやり方しか知らず、
他にやり方はないかなと本を読んだりググったのですが
わかりませんでした。
0240デフォルトの名無しさん
2006/11/04(土) 15:20:020241239
2006/11/04(土) 15:37:35ダイアログを見直して、スタイルをオーバーラップにしたら
はりついてくれました。初歩的すぎてごめんなさい・・・。
ありがとうございました。
0242デフォルトの名無しさん
2006/11/04(土) 17:56:230243239
2006/11/05(日) 16:48:40うっかりDialogBoxマクロで組んでしまっていました・・。
これをCreateDialogに修正したらまた見えなくなって。
今はダイアログボックスのプロパティをいじくってます。
親っていうのはメインウインドウのハンドルのことでしょうか?
242さんのWS_CHILDも含めて理解が足りてないので
もうちょっと勉強してきます。失礼しました。
0244デフォルトの名無しさん
2006/11/05(日) 16:51:160246デフォルトの名無しさん
2006/11/07(火) 16:10:040247C++ 一年生
2006/11/07(火) 17:24:29キーストロークフックをグローバルフックで取りたくて
VS2005(アカデミック版)、winXP,併用ソフトはATOK、シマンテックアンチウイルス
DLLこさえて 宣言は
class __declspec(dllexport) Hook{
public: static int makeKhook();..........................}
定義を
int Hook::makeKhook()
{
hHOOKKEY = (HOOKPROC)KeyboardProc;
hhk = SetWindowsHookEx(WH_KEYBOARD,// フックタイプはキーストローク
hHOOKKEY,// フック処理プロシジャへのポインタ
NULL,//フックプロシジャは同一ファイルで記述
0);// 対象スレッドはすべて
if (hhk == NULL)
{ MessageBox(hWnd,TEXT("フックかけられないじょ"),TEXT("Error"),MB_OK); return 0;}
return 1 ;}
とすると 毎回フックが設定できない。(必ずhhk == NULL で戻ってくる)
それで、ヘルプのSetWindowsHookExの記述を見ると、
「解説:hMod パラメータで NULL を指定し、dwThreadId パラメータで 0 またはほかのプロセスが作成したスレッドの識別子を指定すると、エラーが発生することがあります。」と書いてある。
これは、グローバルフックをかけたければフック設定とフック処理のDLLを分けろ
と言うことなんでしょうか。EXE側で、ほとんど同じコードでフックをかけようとする
と100%うまく行くのですが、ローカルフックにしかならない。
それとも、なにか別にオタンコな事やっていてセットできないだけ? ご教示下さい。
0248デフォルトの名無しさん
2006/11/07(火) 17:28:20実行結果をノートパッドなどに出力するプログラムを作る
0249デフォルトの名無しさん
2006/11/07(火) 20:57:16DateTimePickerコントロールのValueを空白で表示することは
可能でしょうか?エディットに置き換える方法もあるのですが
あまりコントロールを増やしたくないので・・・
よろしくお願いします。
0250デフォルトの名無しさん
2006/11/07(火) 22:17:41resource.hの中のリソースIDの中身を変更したら
resource.h
このファイルはMicrosoft Developer Studio以外で修正されています。○○.rcを再ロードしますか?
とでてきてここで「はい」を選んだらダイアログ画面などが開けなくなってしまいました。
どうしたらよいでしょうか?
0251デフォルトの名無しさん
2006/11/07(火) 22:38:29コントロールに振られているリソースIDを間違って削除したんじゃない?
0252デフォルトの名無しさん
2006/11/08(水) 01:08:23libができたのでテストアプリにリンクしてビルドしたところ、以下の
warningがでてしまいました。libの利用者が意識することなく、
このwarningを解消したいと思っているのですが、方法をご存知の
方がいましたら教えて頂けませんか。
・warningメッセージ
d:\projects\testlib\src\hoge.h(11) : warning C4142: 型が再定義されていますが、それはコード生成上何の効果もありません。
・上記行数にあるコード
typedef unsigned long U_INT32;
ライブラリをビルドする際に宣言されたtypedefが、アプリを
ビルドするときにも有効のまま残ってしまっているのだと推測
しているのですが、どう解消したらよいのか見つけられていません。
作業環境は以下のとおりです。
Windows XP Home SP2
MS VC++ 2005 Express Edition
MS Platform SDK for Win Svr 2003 SP1
よろしくお願いいたします。
0253デフォルトの名無しさん
2006/11/08(水) 02:14:09あるソリューションで、DLLと、それを動かすテストアプリケーションを作成しています。
テストアプリケーションをコンパイルする段階で以下のコンパイルエラーが出ます。
エラー1fatal error LNK1104: ファイル 'd:\MyDocument\Visual.obj' を開くことができません。DebugTool
このオブジェクトファイルが何なのか検討尽きません。
依存関係も設定済み・・・Visual...と名付けたファイルなども無しです。
プロジェクトファイルの位置はマイドキュメント直置きにしてるわけでもなく、ディレクトリ
設定を見てもMyDocumentを設定してる項目は無いと思います。
心当たりのあるかた、教えてください。お願いします。
0254デフォルトの名無しさん
2006/11/08(水) 05:53:51hoge.hからその宣言を外し、ライブラリの方のhoge.hをインクルードしている方に移動すればよろしかろ。
0255デフォルトの名無しさん
2006/11/08(水) 15:30:40のページを参考に、GDI+を用いてグレースケールのGIFを作成するプログラムを作ってみたのですが、
一度ファイルに書き出したのち再度読み込み Bitmapインスタンスからパレットを取得してみると、
ColorPalette構造体のFlagsに設定したはずのPaletteFlagsGrayScaleが得られません。
Bitmap::Save() を用いて保存したんですけど、それでは不十分なんでしょうか
0256デフォルトの名無しさん
2006/11/09(木) 09:05:23OnActivateメッセージが発生したときに、
マウスカーソルのあるボタンのクリック動作をさせたいです。
マウスカーソルの下のコントロールを取得する方法を教えてください。
0257デフォルトの名無しさん
2006/11/09(木) 10:01:31ビットマップ変えるのどうやるんだっけ?
と思ってCBitmapButton思い出したけど
これマウスオーバーじゃなくてフォーカスだな
ということはhittestでやらないとだめか
0258デフォルトの名無しさん
2006/11/09(木) 10:09:340259256
2006/11/09(木) 12:19:28「マウスオーバー」で 少し検索してみたところ、
マウスポインタの座標から割り出す・・・みたいなことが。
メニューにマウス乗せたときや、webのリンクにマウスを乗せたとき、
いろいろと使ってそうなのに・・・。
0260デフォルトの名無しさん
2006/11/09(木) 12:31:32ボタンのウィンドウにWM_MOUSEMOVEが飛んできたら、1回だけマウスオーバーの絵を描画
WM_MOUSELEAVEが飛んできたら絵を戻す
みたいな感じに俺はやってる
0261デフォルトの名無しさん
2006/11/09(木) 13:10:05VC++proでこの計算をやってみようと思ったのですが
エラーがたくさんでて削除して他の例をしようと思ったのですが
エラーが引き継がれてしまいました。
解決策教えてください・・・。
コンパイルしています...
a001.cpp
c:\program files\microsoft visual studio 8\vc\include\sal.h(10) : error C2065: 'FILE' : 定義されていない識別子です。
c:\program files\microsoft visual studio 8\vc\include\sal.h(10) : error C2065: 'output' : 定義されていない識別子です。
c:\program files\microsoft visual studio 8\vc\include\sal.h(11) : error C3861: 'fopen': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(14) : error C3861: 'printf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(15) : error C3861: 'scanf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(59) : error C3861: 'fprintf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(61) : error C3861: 'fprintf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(64) : error C3861: 'fclose': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\stdio.h(69) : error C2378: 'FILE' : 再定義されています。シンボルは typedef でオーバーロードできません
c:\program files\microsoft visual studio 8\vc\include\stdio.h(131) : error C2143: 構文エラー : ';' が '*' の前にありません。
0262261
2006/11/09(木) 13:57:01まったく同じエラーがでます。。。
0263デフォルトの名無しさん
2006/11/09(木) 14:21:19つ[#include <stdio.h>]
0264デフォルトの名無しさん
2006/11/09(木) 14:34:49ありがとうございます。。エラーはかなり激減したんですが
次はこんなエラーが出てしまいました。。。。
//三辺の長さと面積の計算
[#include <stdio.h>]
[#include <math.h>]
int main(){
float a,b = 10.7,c,h,s;
a=20.5;
c=14.5;
h=(a+b+c)/2;
s=sqrt(h*(h-a)*(h-b)*(h-c));
printf("a=%f b=%f c=%f \n",a,b,c,s);
return 0;
}
コンパイルしています...
a001.cpp
c:\program files\microsoft visual studio 8\vc\include\sal.h(10) : error C2065: 'FILE' : 定義されていない識別子です。
c:\program files\microsoft visual studio 8\vc\include\sal.h(10) : error C2065: 'output' : 定義されていない識別子です。
c:\program files\microsoft visual studio 8\vc\include\sal.h(11) : error C3861: 'fopen': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(14) : error C3861: 'printf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(15) : error C3861: 'scanf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(59) : error C3861: 'fprintf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(61) : error C3861: 'fprintf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(64) : error C3861: 'fclose': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\stdio.h(69) : error C2378: 'FILE' : 再定義されています。シンボルは typedef でオーバーロードできません
c:\program files\microsoft visual studio 8\vc\include\stdio.h(131) : error C2143: 構文エラー : ';' が '*' の前にありません。
0265261
2006/11/09(木) 14:35:48計算.cpp
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(2) : error C2014: プリプロセッサ ディレクティブのシャープ記号 (#) の前に、空白文字以外の文字があります。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(3) : error C3409: 空の属性ブロックは認められません。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(3) : error C2143: 構文エラー : ']' が '[' の前にありません。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(3) : error C2014: プリプロセッサ ディレクティブのシャープ記号 (#) の前に、空白文字以外の文字があります。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(5) : error C2337: 'int' : 属性が見つかりません。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(5) : error C2146: 構文エラー : ']' が、識別子 'main' の前に必要です。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(5) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(6) : warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(11) : error C3861: 'sqrt': 識別子が見つかりませんでした
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(12) : error C3861: 'printf': 識別子が見つかりませんでした
ビルドログは "file://c:\Documents and Settings\PC-USER\デスクトップ\計算\Debug\BuildLog.htm" に保存されました。
計算 - エラー 9、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
0266261
2006/11/09(木) 14:49:15] #include <math.h>
int main();
{
float a,b = 10.7,c,h,s;
a=20.5;
c=14.5;
h=(a+b+c)/2;
s=sqrt(h*(h-a)*(h-b)*(h-c));
printf("a=%f b=%f c=%f \n",a,b,c,s);
return 0;
}
------ すべてのリビルド開始: プロジェクト: 計算, 構成: Debug Win32 ------
プロジェクト '計算'、構成 'Debug|Win32' の中間出力ファイルを削除しています。
コンパイルしています...
計算.cpp
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(1) : error C2059: 構文エラー : ']'
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(1) : error C2014: プリプロセッサ ディレクティブのシャープ記号 (#) の前に、空白文字以外の文字があります。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(2) : error C2014: プリプロセッサ ディレクティブのシャープ記号 (#) の前に、空白文字以外の文字があります。
c:\documents and settings\pc-user\デスクトップ\計算\計算.cpp(4) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
ビルドログは "file://c:\Documents and Settings\PC-USER\デスクトップ\計算\Debug\BuildLog.htm" に保存されました。
計算 - エラー 4、警告 0
========== すべてリビルド: 0 正常終了、1 失敗、0 スキップ ==========
エラーだいぶ減らせたんですがここから
どう改善したらいいでしょうか・・・
長々とコピーすいません
0267デフォルトの名無しさん
2006/11/09(木) 14:59:110268261
2006/11/09(木) 15:03:29いえ、VisualC++による理工学問題の解法って本で
プログラムの数値計算の例題をしているんですが・・・
0269デフォルトの名無しさん
2006/11/09(木) 15:06:570270261
2006/11/09(木) 15:06:59ググったんですがやはりVC++再インスコしかないんでしょうか
0271デフォルトの名無しさん
2006/11/09(木) 15:07:030272261
2006/11/09(木) 15:10:48削除するとヘッダーの108エラー19警告が出てしまうんですが。。。
------ すべてのリビルド開始: プロジェクト: 計算, 構成: Debug Win32 ------
プロジェクト '計算'、構成 'Debug|Win32' の中間出力ファイルを削除しています。
コンパイルしています...
計算.cpp
c:\program files\microsoft visual studio 8\vc\include\sal.h(10) : error C2065: 'FILE' : 定義されていない識別子です。
c:\program files\microsoft visual studio 8\vc\include\sal.h(10) : error C2065: 'output' : 定義されていない識別子です。
c:\program files\microsoft visual studio 8\vc\include\sal.h(11) : error C3861: 'fopen': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(14) : error C3861: 'printf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(15) : error C3861: 'scanf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(59) : error C3861: 'fprintf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(61) : error C3861: 'fprintf': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\sal.h(64) : error C3861: 'fclose': 識別子が見つかりませんでした
c:\program files\microsoft visual studio 8\vc\include\stdio.h(69) : error C2378: 'FILE' : 再定義されています。シンボルは typedef でオーバーロードできません
c:\program files\microsoft visual studio 8\vc\include\stdio.h(131) : error C2143: 構文エラー : ';' が '*' の前にありません。
c:\program files\microsoft visual studio 8\vc\include\stdio.h(131) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
c:\program files\microsoft visual studio 8\vc\include\stdio.h(131) : error C2371: 'FILE' : 再定義されています。異なる基本型です。
略
0273デフォルトの名無しさん
2006/11/09(木) 15:13:29Cの基礎は知ってる前提の本じゃないかな?
0274デフォルトの名無しさん
2006/11/09(木) 15:14:55もうちょっと短いサンプルで勉強したほうがいいよ。
0275デフォルトの名無しさん
2006/11/09(木) 15:16:11英語が分からないのに、英語の本で理工学の勉強するようなもんだ。
0276261
2006/11/09(木) 15:20:17もう少しVC++の入門書読み返して見ます。。。
0277デフォルトの名無しさん
2006/11/09(木) 15:22:45Visual C++による理工学問題の解法 (単行本)
佐藤 次男 (著), 佐藤 裕哉 (著)
本の題名は間違い。よく検討して買いましょう, 2004/12/27
レビュアー: カスタマー
この本、Visual C++とついていますが、流体のグラフィクス表示や
大規模数値計算の可視化を可能にする本ではありません。しかも、
VC++の説明もろくになく、簡単なグラフィクス表示、つまり計算結果
のグラフ表示しか書いてありません。題名は全くの検討違い。
プログラムの方もC++なのに全然特性を利用しておらず、後半の
内容はほとんどC言語です。内容も理工学問題とありますが、
明らかに振動を中心とした電気工学で理工問題ではありません。
0278デフォルトの名無しさん
2006/11/09(木) 16:15:26VC++と名の付く本じゃなくて、C/C++言語の本で勉強しなさい。
0279デフォルトの名無しさん
2006/11/09(木) 19:57:38>c:\program files\microsoft visual studio 8\vc\include\sal.h(10) : error C2065: 'FILE' : 定義されていない識別子です。
>c:\program files\microsoft visual studio 8\vc\include\sal.h(10) : error C2065: 'output' : 定義されていない識別子です。
c:\program files\microsoft visual studio 8\vc\include\sal.h を>>261のプログラム例で上書き
なんて馬鹿なマネはしてないよな?
0280261
2006/11/09(木) 22:15:55そうだったみたいです。
sal.h(なんだこれ)とstdio.hがぶっこわれたみたいです。
結局大学図書館いって再インスコしてきました・・・。
お騒がせしました。
0281252
2006/11/10(金) 00:27:02レスありがとうございます。
書いて頂いた方法で解決できると思うのですが、
別々に管理するのは大変なので、出来れば
ライブラリをビルドする時のヘッダとユーザに
配るものとを共通にしたいのです。
(質問するときにちゃんと書くべきでした。
すいません・・・)
0282デフォルトの名無しさん
2006/11/10(金) 00:32:58それじゃ、#ifdefマクロで宣言を括ってやって、ビルドするときはそのマクロを定義するってことで。
0283デフォルトの名無しさん
2006/11/10(金) 01:40:36新規でWin32プロジェクトを作成すると自動生成コードのおかげで
起動するとフォームが表示されてしまいます
簡単なファイルチェックだけしたいのでウィンドウは表示したくないのですが
どこをコメントアウトしたらいいのか教えてください?
コンソールプロジェクトでやってもコンソールウィンドウが出てしまって・・・
0284デフォルトの名無しさん
2006/11/10(金) 03:24:320285デフォルトの名無しさん
2006/11/10(金) 12:38:22って、どのウィンドウをアクティブにするか引数送れないのだけど
どうやって記述すればいいのですか?
static CWnd* lcwnd=GetActiveWindow( );
: //何かアクティブウインドウが変更される処理
SetActiveWindow(lcwnd); //←元のウインドウをアクティブに戻したい(コンパイルエラー)
0286デフォルトの名無しさん
2006/11/10(金) 12:50:10オブジェクト指向を勉強してください
0287285
2006/11/10(金) 13:31:04lcwnd.SetActiveWindow(); //×
lcwnd::SetActiveWindow(); //×
lcwnd->SetActiveWindow(); //○
コンパイルは 通りました(サンキュー☆)が
意図する結果にはなりませんでした
オブジェクト指向ってことは
lcwnd が示すオブジェクトに SetActiveWindow が用意されていない から
意図する結果にならなかった、と考えましたが あってますかね?
とすると 不特定(別アプリ)のウインドウに対しては
CWnd::SetActiveWindow() ではないものを使うべき・・・
ん〜〜
0288デフォルトの名無しさん
2006/11/10(金) 13:40:450289285
2006/11/10(金) 14:06:24おかげさまでできました! サンキュです
GetActiveWindow() ではなく
GetForegroundWindow() を使うべきだったのですね
0290デフォルトの名無しさん
2006/11/10(金) 15:24:59計算した数値結果をそのままグラフに反映させたいと思っています。
左上を(0、0)としていますが、左下を(0、0)と変換できるような関数はないんしょうか?
環境:XPでVC++EEを使っています。
0291デフォルトの名無しさん
2006/11/10(金) 15:37:580292デフォルトの名無しさん
2006/11/10(金) 15:52:24ttp://msdn.microsoft.com/library/en-us/gdi/cordspac_0u43.asp
0293デフォルトの名無しさん
2006/11/10(金) 16:14:36MM変えないで原点を移動して(x,-y)とか
ほかにもいろいろ
0294デフォルトの名無しさん
2006/11/10(金) 16:30:24ありがとうございました☆
できそうです!!
0295261
2006/11/10(金) 18:40:04おとなしくCの初歩の本を借りて読んでみたらだいぶ理解できました。
ありがとうございました。
0296デフォルトの名無しさん
2006/11/10(金) 19:20:56UNICODE文字(スペース含む)のバイト数がとれません。
なぜでしょうか?わかる方いましたらお教えください
0297デフォルトの名無しさん
2006/11/10(金) 19:25:020298296
2006/11/10(金) 19:54:30それは私に対しての回答でしょうか?
もしそうでしたらすみません。回答の意図がわからないです。
質問が少々曖昧でしたのでもう一度
CString ss = _T("山田 シスコ");
int nLen = _mbsnccnt( (unsigned char*)(LPCTSTR)ss,ss.GetLength() );
とした場合、nLenにはなぜか4が返ってきます。
半角もしくは全角を含んだバイト数はどのように取得すればよいのでしょうか?
0299デフォルトの名無しさん
2006/11/10(金) 20:02:090300296
2006/11/10(金) 20:05:50>半角もしくは全角を含んだバイト数
ではなく
半角もしくは全角のスペースを含んだ文字列のバイト数
です。
>4であってる
ということは、スペースが入った文字列のバイト数は取れない
ということでしょうか?
それとも他に何か方法があるのでしょうか?
0301デフォルトの名無しさん
2006/11/10(金) 20:21:47今やったらsizeofで普通に取れたが
0302デフォルトの名無しさん
2006/11/10(金) 20:22:43&#x5c71;&#x7530;&#x3000;&#x30B7;&#x30B9;&#x30B3;
山田 シスコ
こういうこと。
0303デフォルトの名無しさん
2006/11/10(金) 20:23:58通信バッファか何かとか?
0304デフォルトの名無しさん
2006/11/10(金) 20:27:48すまない、詳細読んでなかった。
0305デフォルトの名無しさん
2006/11/10(金) 20:35:20それとも俺は何か読み飛ばしているのか。
0306296
2006/11/10(金) 20:36:09int ret = WideCharToMultiByte(CP_ACP,0,(LPCWSTR)lpStr,-1,NULL,0,NULL,NULL);
の戻り値で取れそうです。
本当にありがとうございました。
0307デフォルトの名無しさん
2006/11/10(金) 20:42:39CStringA s(lpStr);
s.GetLength();
0309247
2006/11/10(金) 22:02:11DllMain の前で
HINSTANCE hInstDLL; を宣言して、
hInstDLL = hInstance; をDllMain の冒頭に追加して
SetWindowsHookEx の第3引数を hInstDLL にしたら
フックはかかったようです。
0310デフォルトの名無しさん
2006/11/10(金) 22:05:48BEGIN_MESSAGE_MAP(CvddocumntDoc, CDocument)
ON_MESSAGE(IDC_DATA_ADD_Request, &CvddocmntDoc::OnMyAddData)
END_MESSAGE_MAP()
と定義しておいて、dllから
SendMessage(NULL,IDC_DATA_ADD_Request ,wParam,lParam);
で、
LRESULT CvddocmntDoc::OnMyAddData(LPARAM L,WPARAM W)
{......... }
を呼び出そうとすると、コンパイルできなくなりました。
エラーメッセージは
.\vddocmntDoc.cpp(22) : error C2440: 'static_cast' : 'LRESULT (__thiscall CvddocmntDoc::* )(LPARAM,WPARAM)' から 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)' に変換できません。
どなたか初心者にお導きを〜〜〜〜〜〜〜〜〜〜〜〜
0311デフォルトの名無しさん
2006/11/10(金) 22:12:08エラーメッセージを読んで
0312デフォルトの名無しさん
2006/11/10(金) 23:13:59CDocumentの派生クラスはWM_COMMANDだけ。
0313デフォルトの名無しさん
2006/11/10(金) 23:44:39だから全角半角混在でも文字数数えるのは非常に楽
0314デフォルトの名無しさん
2006/11/11(土) 07:17:25エスケープシーケンスについてなのですが、
ESC [y; xH のようなのをエスケープシーケンスドライバを組み込まなくても
同じような動作させたいのですが、どのようにしたらいいでしょうか?
コマンドプロンプトで例えば
1:
現在の数値:○○
2:
現在の数値:○○
のようにスクロールしないで同じ位置に表示させたいのですが。
0315デフォルトの名無しさん
2006/11/11(土) 07:56:400316デフォルトの名無しさん
2006/11/11(土) 08:01:00それはスクロールしているのじゃないのか?
単に同じ場所で情報を更新したいだけなら、こんなんでどうでしょ。
printf("現在の数値:%d\r", num);
0317デフォルトの名無しさん
2006/11/11(土) 08:07:47レスありがとうございます。
1行なら\rだけでいいのですが、複数行を同じ位置に表示にさせたいのです。
例えばこんなかんじです。
時刻
JST:08:00:00
UST:23:00:00
時差:1秒以内です。
0318デフォルトの名無しさん
2006/11/11(土) 08:38:19諦めてAPI使え。
0319デフォルトの名無しさん
2006/11/11(土) 08:45:34これみたいに
system("cls");
してから毎回書き直す
0320デフォルトの名無しさん
2006/11/11(土) 08:50:40一番下の行でやればいい。
0321デフォルトの名無しさん
2006/11/11(土) 09:19:19WindowsのWCHARはUTF-16なんで全て2バイトではない。
サロゲートペアを使って4バイトで1文字を表す文字もある。
0322デフォルトの名無しさん
2006/11/11(土) 11:08:59VC++2005EEにてビルドしたらこのようなエラー構文が出ました。
対処方法を教えてください。
※○○はわしの名前
c:\documents and settings\○○\my documents\visual studio 2005\projects\hello\hello\Form1.h(98) : error C3872: '0x3000': この文字を識別子で使用することはできません
c:\documents and settings\○○\my documents\visual studio 2005\projects\hello\hello\Form1.h(98) : error C3872: '0x3000': この文字を識別子で使用することはできません
c:\documents and settings\○○\my documents\visual studio 2005\projects\hello\hello\Form1.h(98) : error C2653: ' MessageBox' : 識別子がクラス名でも名前空間名でもありません。
c:\documents and settings\○○\my documents\visual studio 2005\projects\hello\hello\Form1.h(98) : error C2664: 'void System::Windows::Forms::Form::Show(System::Windows::Forms::IWin32Window ^)' :
1 番目の引数を 'System::String ^' から 'System::Windows::Forms::IWin32Window ^' に変換できません。
0323デフォルトの名無しさん
2006/11/11(土) 11:20:55全角スペースを半角に置換する
0324デフォルトの名無しさん
2006/11/11(土) 11:22:11置換した後に首吊るのを忘れるなよ。
0325デフォルトの名無しさん
2006/11/11(土) 11:25:340326デフォルトの名無しさん
2006/11/11(土) 11:34:42まだ序盤なんです。こんなとこで躓いたら先にいけません
0327デフォルトの名無しさん
2006/11/11(土) 11:40:57明日の「教えてクン」を目指す、若き戦士達に以下の文章を捧げる。
日々精進し、パソコンヲタクどもの親切を蹂躙してやれ。
1. 努力を放棄すること
いやしくも「教えてクン」たるもの、努力をしてはならない。
過去ログを読んだり、検索してはいけない。
「英語は苦手なので、分かりません。」は、高く評価できる。
辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
他力本願と言われようと、自分で調べたり試行錯誤したりせず、他人の努力の結果を搾取するのが、正しい「教えてクン」である。
また、「もう何が悪いのかサッパリ分かりません。」と言ってふてくされるのも有効である。
「サッパリ」という単語が「やる気の無さ」を効果的に表現している。
「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと自己の積極性が現れてしまうので、「教えてクン」失格である。
2. 情報を開示しないこと
使用OSや、機器構成などの必須の情報を知らせてはならない。
マザーボード名やBIOSのバージョンも同様だ。
具体的なアプリ名やバージョンも隠蔽すべきだ。
「DVD再生ソフト」のように曖昧に表記しておけばよい。
反対に「前から欲しいと思っていた○○」とか「安売りされていた ○○」等の「どうでもいい情報」は、どんどん書いてやれ。
トラブルの場合は、状況を正確に記述してはならない。
「なんだかうまく動きません。」とか「エラーが出ます。」等と具体的なことは何も書かないことが重要である。
また、自分の試してみた事も具体的に書いてはいけない。
考えられる組合せのマトリックスを作成し、状況を整理するなどもってのほかである。
最悪の場合、それだけで問題が解決してしまうこともあるのだ。
「いろいろやってみたけど、動きません。」が理想的だ。
0328デフォルトの名無しさん
2006/11/11(土) 11:42:16「教えてクン」は、孤高の戦士である。
相手のことを考えるようでは教えてクン失格というものだ。
以下のような行動が、望ましい。
初心者であることを高らかに宣言し、初心者向けの丁寧で分かりやすい説明を強要する。
専門用語の使用を禁じておくとさらに効果的である。
簡潔な説明を禁じられたヲタクどもは、同じ内容を説明するのに、何倍もの労力を強いられる。
自分は努力せず、相手には多大な努力をさせることこそが「教えてクン」の真骨頂である。マルチポストも有効である。
そのBBSを信用していないことを明確に示せる。
「どうせ、お前らじゃ分からんだろう。」という意志表示として高く評価できる。
もちろんマルチポストの非礼をあらかじめ詫びてはならない。
それでは、単なる「急いでいる人」になってしまう。
それは、教えてクンではない。質問のタイトルは、「教えてください。」で良い。
タイトルを読んだだけでは「何に関する質問」か全く分からない。
そういう努力は、答える人間にさせれば良いのだ。
とにかく、答える人間が答えやすいように気を使って質問してはならない。
傲慢で不遜な態度が必須である。「聞きたいことがあります。」など、プロの仕事であろう。
最後に、言うまでも無いことだとは思うが、答えてくれた人達に礼の言葉を返すなど言語道断である。
せっかく「教えてクン」を貫いてきたのに、最後にお礼を言っているようでは、画竜点睛を欠いていると言わざるを得ない。
質問だけしておいて、後はシカトが基本である。
上級テクニックとして、「そんなことはもう試しました。」とか、「そこまで初心者じゃありません。」などと言って、回答者の神経を逆なでしておけば完璧である。
以上のことを踏まえて質問すれば、君も立派な「教えてクン」である。
ビバ!教えてクン! 教えてクンに栄光あれ!!
0329デフォルトの名無しさん
2006/11/11(土) 12:34:56http://pc8.2ch.net/test/read.cgi/tech/1162215248/384
0330デフォルトの名無しさん
2006/11/11(土) 16:08:21それを防ぐ手立てはありますか。
0331デフォルトの名無しさん
2006/11/11(土) 16:20:430332330
2006/11/11(土) 16:59:16ありがとうございます。
0333デフォルトの名無しさん
2006/11/13(月) 14:01:26VC++(SDK)で、フォーム(でOK?)上の子ウィンドウ(コントロール)の
フォントって全て共通に出来る?
つまりは、
「フォントを与えると全部の子ウィンドウのフォントを一括して変えられるAPIがある」のか
「1つ1つ変えるしかない」のかって言うことなんだけど・・・
誤字、用語間違いあったら許して。
0334デフォルトの名無しさん
2006/11/13(月) 16:17:210335デフォルトの名無しさん
2006/11/13(月) 19:58:46インストールしたのに使えません。
バクっているんでしょうか。
環境はウィンドウズです。
0336デフォルトの名無しさん
2006/11/13(月) 20:27:40どうやらバクっているようですね。
で、何を教えれば良いのですかな?
0337デフォルトの名無しさん
2006/11/13(月) 20:30:550338デフォルトの名無しさん
2006/11/13(月) 22:12:550339デフォルトの名無しさん
2006/11/14(火) 15:44:33メッセージを送りたいのですが、どうやればよいのでしょうか?
0340デフォルトの名無しさん
2006/11/14(火) 15:53:39.NETに似てる感じがするんですけど、
.NETの参考書でも勉強するには十分なんでしょうか?
0341デフォルトの名無しさん
2006/11/14(火) 16:12:180342デフォルトの名無しさん
2006/11/14(火) 16:21:42Frameworkです。
0343デフォルトの名無しさん
2006/11/14(火) 16:41:14どうすればよいのでしょうか?
0344デフォルトの名無しさん
2006/11/14(火) 16:53:110345デフォルトの名無しさん
2006/11/14(火) 16:59:58現状C++で.NETな本はほとんどないから、他の言語を使った.NETの本を使い、
MSDNライブラリやWebでC++/CLIの構文の知識を補完するしかないと思う。
0346デフォルトの名無しさん
2006/11/14(火) 17:36:11ありがとうございました☆
そうします
0347デフォルトの名無しさん
2006/11/14(火) 22:16:19CString filename = L"abcdefg";
const char *cast;
cast = (LPCSTR)(LPCTSTR)filename;
とキャストをするとcastには最初の"a"しか入りません。
どうやってキャストをすればよいのでしょうか。
0348デフォルトの名無しさん
2006/11/14(火) 22:39:380349デフォルトの名無しさん
2006/11/14(火) 22:56:18Unicodeビルドだろうからchar*じゃ、まずいんじゃね?
const _TCHAR *cast;
cast = (LPCTSTR)filename;
0350デフォルトの名無しさん
2006/11/14(火) 23:16:540351デフォルトの名無しさん
2006/11/14(火) 23:21:040352デフォルトの名無しさん
2006/11/15(水) 21:17:41ビューの中にあるコントロールの座標をTwips単位で
取得する方法を教えてください。
0353デフォルトの名無しさん
2006/11/15(水) 21:22:040354デフォルトの名無しさん
2006/11/15(水) 23:10:04Form1_Loadの中に
Form2 *f2p = new Form2();
f2p->Show();
f2p->Activate();
って書いて起動時にForm2を表示してアクティブウィンドウにしたいんだけど、どうしてもForm1がアクティブになってしまうんだ。
Form1にボタン貼り付けて同じ内容コピペするとForm2がアクティブになるんだけど・・
何ででしょうか?
他にもForm1_Loadの中に
this->Hide();や
this->Visible = false;
って書いて非表示になるかどうかやってみたけどならないです。
初回起動時の処理をしたいんだけど上手くいきません何方かご教授をお願いします。
環境:VC++ .NET 2003
0355354
2006/11/15(水) 23:51:59調べたら原因が分かりました。
順番としてLoadが実行された後にFormが表示されてるんですね。
参ったな・・・
0356デフォルトの名無しさん
2006/11/16(木) 02:24:27C++/CLIのWindows.Formの話をしてるならshownイベントが使える。
0357デフォルトの名無しさん
2006/11/16(木) 11:49:40createwindowでチェックボックスを作ったのですが
Tabキーでフォーカスの移動が出来ません。
WS_TABSTOPも入れてあります。
ダイアログならタブオーダーで設定できるみたいですが・・・
もし「これを忘れるとTabキーでフォーカスの移動できんよ」という注意点が在ったら
教えて下さい。
0358デフォルトの名無しさん
2006/11/16(木) 12:06:130359デフォルトの名無しさん
2006/11/16(木) 12:07:0003601/2
2006/11/16(木) 22:51:23MFC等使わず、CWindow・CDialogなどWin32APIのラッパクラスを自作してやってるのですが
class CMainWnd : public CWindow・・・・
class CConfigDlg : public CDialog・・・・
という二つのクラスを作りました
このときCMainWndは、メンバとしてCConfigDlgの実体m_confDlgを持ちます
CDialogにはDoModal(仮想関数)という、内部でDialogBoxParamを呼び出してモーダルダイアログを作成するメソッドがあり
CConfigDlgにはDoConfigという、いくつか引数を取り必要なデータを確保した後にDoModalを呼び出すメソッドがあります
CMainWndでは、あるメニューを選択された時にm_confDlg.DoConfig(・・・)を実行します
もう1週間くらいチマチマと開発しているのですが
ずっと問題無く動いていたのですが、昨日から突然DoConfig内のDoModal呼び出し時に例外0xC0000005を吐くようになりました
他の部分はそれなりに書き換えたりしましたが、DoConfig・DoModal近辺は一切手を加えてないのでエラーの心当たりも無く
どうしたものかほとほと困り果ててしまいました
03612/2
2006/11/16(木) 22:53:1703622/2
2006/11/16(木) 22:57:33test.exe の 0x0043ffe6 でハンドルされていない例外が発生しました
: 0xC0000005: 場所 0x0000006c を読み込み中にアクセス違反が発生しました。
DoConfigのコードは以下のようになっています
int CConfigDlg::DoConfig(CWindow* pParent, LPCTSTR tID, CConfigData& kcData) {
m_TemplateID = tID;
SetData(kcData);
m_blConfig = true;
return DoModal(pParent);
}
DoConfig内を混合モードで追ってみたところ、以下のようなアセンブラコードで
return DoModal(pParent);
0043FFD8 mov esi,esp
0043FFDA mov eax,dword ptr [pParent]
0043FFDD push eax
0043FFDE mov ecx,dword ptr [this]
0043FFE1 mov edx,dword ptr [ecx]
0043FFE3 mov ecx,dword ptr [this]
0043FFE6 call dword ptr [edx+6Ch]
0043FFE9 cmp esi,esp
0043FFEB call ILT+2245(__RTC_CheckEsp) (4368CAh)
0043FFE1のMOVで、edxには0x00000000が代入されて居ましたので、これが直接の原因ではないかと思ってます
関数テーブルが壊れてるとか、そういう問題なのでしょうか?
それとも別のものなのか、良く分かりません
どなたか、心当たりのある方はいらっしゃらないでしょうか
0363デフォルトの名無しさん
2006/11/16(木) 23:00:340364デフォルトの名無しさん
2006/11/16(木) 23:03:47さっそくのレスありがとうございます
まったく別の場所で破壊ですか
それだと、全体的に洗いなおした方がよさそうですね・・・
少し、コードと格闘して見ます
0365デフォルトの名無しさん
2006/11/16(木) 23:07:29関数がわかればいいのだが。
そのためにも、完成するまでにセーブした日付入りソースは必須。
つまりエラーが出ないのはどこまでなのかさかのぼって比較して検討
できる。
0366デフォルトの名無しさん
2006/11/16(木) 23:07:47MFC使っててよかったなと思う
0367デフォルトの名無しさん
2006/11/16(木) 23:10:02なるほど、確かにそうですね
今度から要所要所ででもバックアップ作成することにします
0368デフォルトの名無しさん
2006/11/16(木) 23:12:280369デフォルトの名無しさん
2006/11/16(木) 23:13:22とにかくこれは自分には欠かせない
0370デフォルトの名無しさん
2006/11/17(金) 02:25:11特定の一つの値のみをUpdateData(FALSE)のような形で更新したいのですが、
どのような方法をとればよいのでしょうか。
0371362
2006/11/17(金) 06:42:57CMainWndのメンバに、それぞれBOOL*32、BYTE*256の配列があり、コンストラクタでZeroMemoryしてたのですが
ヘッダを確認してたら、
BOOL m_bl[256];
BYTE m_cb[32];
と要素数が逆になっていたので、これを直したところエラーも消えました
ここで、CConfigDlgのメンバまでZeroMemoryされてたんですね・・・
皆さん、ご助言ありがとうございました
0372デフォルトの名無しさん
2006/11/17(金) 07:37:490373デフォルトの名無しさん
2006/11/17(金) 08:35:170374デフォルトの名無しさん
2006/11/17(金) 11:39:04・DoDataExchangeに細工をする
・DDXを使わず、直接エディットボックスを更新する
0375デフォルトの名無しさん
2006/11/17(金) 13:15:09ありがとうございます。解決しました。
0376デフォルトの名無しさん
2006/11/17(金) 13:58:38odbc32.libというファイルをライブラリのフォルダに入れてみましたがそれでも改善されません。
他に何が必要か分かる方いたら教えてください。
0377デフォルトの名無しさん
2006/11/17(金) 16:31:140378デフォルトの名無しさん
2006/11/17(金) 16:39:35―――――――――――――――――――――――-|
| | No | 社員名 | 社員コード | 住所 | 電話番号|
|――――――――――――――――――――――― |
| | 01 | あああ | xxxxxxxx | xxxx | xxxx-xxx |
|+ | 02 | あいう | xxxxxxxx | xxxx | xxxx-xxx |
||-| | | | xxxx | xxxx-xxx |
||-| | | | xxxx | xxxx-xxx |
||-| | | | xxxx | xxxx-xxx |
| | 03 | あおう | xxxxxxxx | xxxx | xxxx-xxx |
| | 04 | かかか| xxxxxxxx | xxxx | xxxx-xxx |
| | 05 | ききき | xxxxxxxx | xxxx | xxxx-xxx |
|―――――――――――――――――――――――
ちょっと見づらいかもしれませんが、このような表示形式のグリッド(VSFlexGrid)があります
列のヘッダにてソート(ソート対象はNo、ソートは降順)をかけたときに下記のような表示にソート
されたいのですが、どのようにしたらよろしいでしょうか?ご教授をお願いします。
ソート後
―――――――――――――――――――――――-|
| | No | 社員名 | 社員コード | 住所 | 電話番号|
|――――――――――――――――――――――― |
| | 05 | ききき | xxxxxxxx | xxxx | xxxx-xxx |
| | 04 | かかか| xxxxxxxx | xxxx | xxxx-xxx |
| | 03 | あおう | xxxxxxxx | xxxx | xxxx-xxx |
|+ | 02 | あいう | xxxxxxxx | xxxx | xxxx-xxx |
||-| | | | xxxx | xxxx-xxx |
||-| | | | xxxx | xxxx-xxx |
||-| | | | xxxx | xxxx-xxx |
| | 01 | あああ | xxxxxxxx | xxxx | xxxx-xxx |
|―――――――――――――――――――――――
0379デフォルトの名無しさん
2006/11/17(金) 16:56:52ここサポートセンターじゃないよ
0380デフォルトの名無しさん
2006/11/17(金) 18:33:53CString ss = L"あああテスト1いいいテスト1ううう";
で、最初の「テスト1」のみ削除する場合、どのように
すればよいのでしょうか?
0381デフォルトの名無しさん
2006/11/17(金) 19:17:240382デフォルトの名無しさん
2006/11/17(金) 19:23:02最初の「テ」の所にカーソルを移動させて
Deleteキーを4回押下する。
0383380
2006/11/17(金) 19:35:24例
CString s1 = L"テスト1";
CString s2 = L"あああテスト1いいいテスト1ううう";
//消去処理
結果
s2には"あああいいいテスト1ううう";
となるようにしたい
s2にセットされている文字列から最初に見つかったs1の
文字列を消したいのですがどのようにしたらよいのでしょうか?
0384デフォルトの名無しさん
2006/11/17(金) 19:49:140385デフォルトの名無しさん
2006/11/17(金) 19:59:26これのソースまねたらできそうな気がするが
0387376
2006/11/17(金) 20:28:20ありがとうございます、その通りでした。
borlandのようにソースをそのままコンパイルとはできないのですね。
プロジェクトを作ったら無事にexeファイルを作れました。
0388デフォルトの名無しさん
2006/11/17(金) 21:06:51スタートメニューのVisual C++のコマンドプロンプトを起動して、
そこでコンパイル・リンクする。
0389デフォルトの名無しさん
2006/11/17(金) 21:11:40#include <map>
template< class AbstractProduct, typename IdentifierType,
typename ProductCreator = AbstractProduct* (*)() >
class Factory
{
typedef std::map<IdentifierType, AbstractProduct> AssocMap;
AssocMap associations_;
public:
bool Register( const IdentifierType& Id, ProductCreator creator ) {
return associations_.insert(
AssocMap::value_type( id, creator ) ).second;
}
bool Unregister( const IdentifierType& id ) {
return associations_.erase( id ) == 1;
}
AbstractProduct* createObject( const IdentifierType& Id ) {
typename AssocMap::const_Ierator i =
associations_.find( id );
if ( i != associations_.end() )
{
return ( i->second )();
}
}
};
class Shape {};
class Line : public Shape {};
class Circle : public Shape {};
class Porygon : public Shape {};
0390389
2006/11/17(金) 21:12:56#include "Factory.h"
Line* __cdecl createLine()
{
return new Line;
}
Circle* createCircle()
{
return new Circle;
}
Porygon* createPorygon()
{
return new Porygon;
}
void main()
{
Factory< Shape, const char* > factory;
factory.Register( "Line", createLine );
factory.Register( "Circle", createCircle );
factory.Register( "Porygon", createPorygon );
//・・・・以下略
}
0391389
2006/11/17(金) 21:15:21error C2664: 'Register' : 2 番目の引数を 'class Line *(void)' から 'class Shape *(__cdecl *)(void)' に変換できません。
スコープ内でこの名前を持つ関数でターゲット型に一致するものはありません。
と、C2664 のエラーがでちゃうんだけどどうして?
0392389
2006/11/17(金) 21:22:47Line* createLine() { return new Line; }
は当然駄目で、戻り値を上位型の
Shape* createLine() { return new Line; }
にしなきゃ通る訳ないよな・・・・orz
0393デフォルトの名無しさん
2006/11/17(金) 21:51:47よく見たらCString::Removeは1文字削除だった
たぶんこれ使えばできるだろう
CString::Find
CString::Delete
0394デフォルトの名無しさん
2006/11/17(金) 22:28:41#include <map>
template
< class AbstractProduct, typename IdentifierType,
typename ProductCreator = AbstractProduct* (*)()
>
class Factory {
public:
bool Register( const IdentifierType& id, ProductCreator creator ) {
return associations_.insert( AssocMap::value_type( id, creator ) ).second;
}
bool Unregister( const IdentifierType& id ) {
return associations_.erase( id ) == 1;
}
AbstractProduct* createObject( const IdentifierType& Id ) {
typename AssocMap::const_Ierator i = associations_.find( id );
if ( i != associations_.end() )
return ( i->second )();
}
private:
typedef std::map<IdentifierType, ProductCreator> AssocMap;
AssocMap associations_;
};
class Shape {};
class Line : public Shape {};
0395389
2006/11/17(金) 22:33:32#include "Factory.h"
Shape* createLine()
{
return new Line;
}
void main()
{
Factory< Shape, const char* > factory;
factory.Register( "Line", createLine );
Shape* line = factory.createObject( "Line" );
delete line;
}
ビルドすると、訳のわからん警告と、エラーがでまくります。
Loki は VC++ ではビルドできないって話を聞いた覚えがありますが、やっぱり駄目?
0396デフォルトの名無しさん
2006/11/17(金) 22:40:31具体的に書けよ
・・・
0397デフォルトの名無しさん
2006/11/17(金) 22:41:430398デフォルトの名無しさん
2006/11/17(金) 22:42:450399デフォルトの名無しさん
2006/11/17(金) 22:44:010400デフォルトの名無しさん
2006/11/17(金) 23:03:31いいの、かなりうざいよwww
Factory.cpp
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xtree(149) : warning C4786: '?$reverse_bidirectional_iterator@Viterator
@?$_Tree@PBDU?$pair@QBDP6APAVShape@@XZ@std@@U_Kfn@?$map@PBDP6APAVShape@@XZU?$less@PBD@std@@V?$allocator@P6APAVShape@@XZ@3@@2
@U?$less@PBD@2@V?$allocator@P6APAVShape@@XZ@2@@std@@U?$pair@QBDP6APAVShape@@XZ@3@AAU43@PAU43@H' : 識別子が '255' 文字に切り捨てられました (browser 情報内)。
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\map(46) : コンパイルされたクラスのテンプレートのインスタンス化
'std::_Tree<char const *,struct std::pair<char const * const,class Shape * (__cdecl*)(void)>,struct std::map<char const *,class Shape * (__cde
cl*)(void),struct std::less<char const *>,class std::allocator<class Shape * (__cdecl*)(void)> >::_Kfn,struct std::less<char const *>,class std::allocator
<class Shape * (__cdecl*)(void)> >' の参照を確認してください
D:\TEMP\Factory\Factory.cpp(30) : コンパイルされたクラスのテンプレートのインスタンス化
'std::map<char const *,class Shape * (__cdecl*)(void),struct std::less<char const *>,class std::allocator<class Shape * (__cdecl*)(void)> >' の参照を確認してください
D:\TEMP\Factory\Factory.cpp(43) : コンパイルされたクラスのテンプレートのインスタンス化 'Factory<class Shape,char const *,class Shape * (__cdecl*)(void)>' の参照を確認してください
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xtree(152) : warning C4786:
'?$reverse_bidirectional_iterator@Vconst_iterator@?$_Tree@PBDU?$pair@QBDP6APAVShape@@XZ@std@@U_Kfn@?$map@PBDP6APAVShape@@XZU?$less@PBD@std@@V?$allocator@P6APAVShape@@X
Z@3@@2@U?$less@PBD@2@V?$allocator@P6APAVShape@@XZ@2@@std@@U?$pa
ir@QBDP6APAVShape@@XZ@3@ABU43@PBU43@H' : 識別子が '255' 文字に切り捨てられました (browser 情報内)。
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\map(46) :
以下、略。
0401389
2006/11/17(金) 23:05:24Shape* line = factory.createObject( "Line" );
そうそういい忘れた。環境はVC++6です。
0402デフォルトの名無しさん
2006/11/17(金) 23:06:500403デフォルトの名無しさん
2006/11/17(金) 23:11:27D:\TEMP\Factory\Factory.h(24) : error C2039: 'const_Ierator' : 'map<char const *,class Shape * (__cdecl*)(void),struct std::less<char const *>,class std::allocator<class Shape * (__cdecl*)(void)> >' のメンバではありません。
D:\TEMP\Factory\Factory.h(24) : error C2146: 構文エラー : ';' が、識別子 'i' の前に必要です。
D:\TEMP\Factory\Factory.h(24) : error C2501: 'const_Ierator' : 識別名を宣言するのに、型が指定されていません。
D:\TEMP\Factory\Factory.h(24) : error C2065: 'i' : 定義されていない識別子です。
D:\TEMP\Factory\Factory.h(25) : error C2065: 'id' : 定義されていない識別子です。
D:\TEMP\Factory\Factory.h(26) : error C2677: 二項演算子 '!=' : 型
'class std::_Tree<char const *,struct std::pair<char const * const,class Shape * (__cdecl*)(void)>,struct std::map<char const *,class Shape * (__cdecl*)(void),struct std::less<char
const *>,class std::allocator<class Shape * (__cdecl*)(void)> >::
_Kfn,struct std::less<char const *>,class std::allocator<class Shape * (__cdecl*)(void)> >::iterator' を扱うグローバルな演算子は定義されていません。(または変換できません)(新しい動作; ヘルプ
を参照)
D:\TEMP\Factory\Factory.cpp(27) : error C2227: '->second' : 左側がクラス、構造体、共用体へのポインタではありません。
cl.exe の実行エラー
ブラウザ データベースを作成中...
Factory.exe - エラー 7、警告 0
0404デフォルトの名無しさん
2006/11/17(金) 23:24:05createObjectがおかしい、const_Ierator⇒const_iterator、Id(仮引数宣言)⇒id。
そしてi == associations_.end()のときに、何も値を返さないという警告になるが、一応コンパイル・実行できた。
それでもだめだったら、VC++ 6の問題だから仕方ないと思うよ。
さあVisual C++ 2005 EEだ。
0405デフォルトの名無しさん
2006/11/17(金) 23:30:03駄目ですね。やっぱVC++6の仕様みたいです。
#template のネストもVC6では出来ないようだし・・・
0406デフォルトの名無しさん
2006/11/18(土) 08:47:33http://pc8.2ch.net/test/read.cgi/tech/1160893851/
そういうどうでもいい話はこっち向き
0407デフォルトの名無しさん
2006/11/18(土) 09:48:01Q
C/C++の本に書いてあるコードでVCでコンパイルが通らないものがあります。
どうしたらいいですか?
A
その本の推奨する環境でコンパイルしてください。
0408デフォルトの名無しさん
2006/11/19(日) 00:55:38textoutつかって日本語表示させようとすると見事に文字化けする。
マジ使えねぇ
0409デフォルトの名無しさん
2006/11/19(日) 02:20:260410デフォルトの名無しさん
2006/11/19(日) 02:51:000411デフォルトの名無しさん
2006/11/19(日) 03:07:08http://www2.ranobe.com/test/src/up15798.jpg
見たいにコメントを表示させたいのですがどうすればいいのでしょうか?
0412デフォルトの名無しさん
2006/11/19(日) 03:13:070413デフォルトの名無しさん
2006/11/19(日) 03:37:11おもに猫でも〜を見てプログラムを勉強してるのですが
datagridviewを使うにはどうすればいいのでしょうか?
CLRというのを選択しないと出てこないのですが
またMFCでもdatagridviewは使えるのでしょうか?
0414デフォルトの名無しさん
2006/11/19(日) 08:30:42どう見てもマルチです、本当に(ry
0415411
2006/11/19(日) 13:20:17ありがとうございます。
ツールチップって言うんですね。
ヒント or ヘルプ and 浮かび上がる
とかで検索しててまったくヒットしなかったので助かりました。
どうも。
0416デフォルトの名無しさん
2006/11/19(日) 14:24:07この一文の事でお聞きしたいのですが、
これをWM_PAINT内に書くとウィンドウ上に円が描かれます。
しかし、WM_PAINTから呼び出した別の関数で
上記の文を実行させると、ウィンドウからはみ出したり
円が描かれなかったりします。
その関数には (HWND hwnd)や(HDC hdc)などを渡したりもしています。
何でだろう?
相当馬鹿なことやってるかもしれないんですけど
0417デフォルトの名無しさん
2006/11/19(日) 15:01:260418416
2006/11/19(日) 16:29:28hdc=BeginPaint(hWnd,&ps);
Ellipse(hdc,10,10,100,100); //有効
EndPaint(hWnd,&ps);
return 0;
//以下略
switch(LOWORD(wParam)) {
case 1:
hdc=BeginPaint(hWnd,&ps);
Ellipse(hdc,10,10,200,200); //これがおかしい
EndPaint(hWnd,&ps);
break;
質問の趣旨が間違ってました。すまんです。
WM_PAINTの中でのEllipseは有効なのに、ボタン(IDは1)を押しても
円が描かれません。と言う事です。
0419デフォルトの名無しさん
2006/11/19(日) 16:48:03Ellipseを使って円をランダムに表示させたいんだがうまくいきません。
case WM_PAINTの中はこんな感じです。
rx1 = rand() % rc.right;
atm[j][0] = rx1; atm[j][1] = rx1; //x1, y1座標
atm[j][2] = rx1 + 10; atm[j][3] = rx1 + 10; //x2, y2座標
hBrush = CreateSolidBrush(RGB(255, 226, 0));
hOBrush= (HBRUSH)SelectObject(hdc, hBrush);
Ellipse(hdc, atm[j][0], atm[j][1], atm[j][2], atm[j][3]);
SelectObject(hdc, hOBrush);
DeleteObject(hBrush);
配列に値を入れてるのは他のとこでその値を使いたいので成ってます。
WM_CREATEのなかに
srand((unsigned)time(NULL));
を入れて表示させてますが、円が分身しちゃいます。
しないで一定の場所に保つ方法ってありますか?
0420デフォルトの名無しさん
2006/11/19(日) 16:54:15それは正しい動作
おかしいと思うキミが理解できてない
MSDNのBeginPaintの解説を良く読んでみなさい
0421デフォルトの名無しさん
2006/11/19(日) 16:58:00分身?
WM_PAINTの度にランダム生成してんだから同じ場所に出ないのは当然だと思うんだけど?
0422デフォルトの名無しさん
2006/11/19(日) 17:30:40教科書のは大丈夫だったから良いと思ったら
仰るとおり再描画かけてたので分身してるっぽいです。
こんな質問するなんて、ほんと申し訳ないです。。。
0423デフォルトの名無しさん
2006/11/19(日) 19:42:47データの格納方法は完成したんですが、
データをそのまま使ってピクチャボックスに描くには不可能です。
なので、どうにかして、そのデータを使ってピクチャボックスに描きたいのですが
どうしたらいいでしょうか?
データは(0、0) 〜 (10000、10000)までの大きさです。
それをピクチャボックス(500、500)の大きさに描きたいです。
よろしくお願いします。
0424デフォルトの名無しさん
2006/11/19(日) 20:12:41つか、データの構造も知らさずにいったい何を言えと?
0425デフォルトの名無しさん
2006/11/19(日) 20:34:191ファイルの中にX,Yの座標点のデータが入ってるんですけど、それを順番に読み込んで地図を描くってやつなんです。
0426デフォルトの名無しさん
2006/11/19(日) 21:07:49・データの座標系を画面の座標系に変換して描画する
・(0,0)〜(10000,10000)サイズのオフスクリーンのキャンバスを用意してそこに一旦描画→StrechBltで縮小して画面に表示
好きな方でどうぞ
0427デフォルトの名無しさん
2006/11/19(日) 23:12:18馬鹿の考えた仕様は根本から作り直した方がいいかも
0428デフォルトの名無しさん
2006/11/20(月) 02:56:410429デフォルトの名無しさん
2006/11/20(月) 09:20:340430デフォルトの名無しさん
2006/11/20(月) 20:58:200431デフォルトの名無しさん
2006/11/20(月) 20:59:510432デフォルトの名無しさん
2006/11/20(月) 21:05:00おしえてっ!!
0433デフォルトの名無しさん
2006/11/20(月) 21:11:362. .NET Framework
3. その他のGUIライブラリ
0434デフォルトの名無しさん
2006/11/20(月) 21:12:544. Academic or Standard以上を買う。
0435デフォルトの名無しさん
2006/11/20(月) 21:19:40僕には無理なのか・・・
0436デフォルトの名無しさん
2006/11/20(月) 21:27:46無料。
> 2. .NET Framework
付いてるだろ?
> 3. その他のGUIライブラリ
無料のもあるだろ。
0437デフォルトの名無しさん
2006/11/20(月) 21:38:37Excelがあるなら、csvファイルに出力してもいいね。
0438デフォルトの名無しさん
2006/11/20(月) 22:09:23あるならどこにあるのか教えて頂きたいす。
0439デフォルトの名無しさん
2006/11/20(月) 22:20:12デバッグ→ウィンドウ→メモリ
もしかしたら、デバッグ実行してないとメニューに出ないかも。
0440デフォルトの名無しさん
2006/11/20(月) 22:28:08感謝を。明日、試してみるす。
0441デフォルトの名無しさん
2006/11/21(火) 16:02:26xxx.exe の 0x7c958fea で初回の例外が発生しました: 0xC0000005:
場所 0x00000010 に書き込み中にアクセス違反が発生しました。
今のところ特に問題は発生していないのですが、今後何かしらの
障害になりうるものであるならば早急に対処したいので、このエラーに関して
解決法、もしくはなにか情報をお持ちの方いましたらご教授をお願いいたします。
環境:WinXP Pro SP2 VS2005 MFC使用、MDIアプリケーション
0442デフォルトの名無しさん
2006/11/21(火) 16:21:010443デフォルトの名無しさん
2006/11/22(水) 18:27:52どうしたらいいでしょうか?
0444デフォルトの名無しさん
2006/11/22(水) 18:46:340445デフォルトの名無しさん
2006/11/22(水) 18:49:14座標(100,100)ってやって、左上からの座標じゃなくて、左下からの座標点を取りたいんですけど、
そういう関数ってないですか?
0446デフォルトの名無しさん
2006/11/22(水) 18:55:14ヒント:CRectを返すメンバを探すこと
0447デフォルトの名無しさん
2006/11/22(水) 19:13:250448デフォルトの名無しさん
2006/11/22(水) 21:24:02原点移動しないで自分で計算した方がapi呼ばない分コーディングが楽
0449デフォルトの名無しさん
2006/11/22(水) 22:22:32ありがとうございます!!
0450デフォルトの名無しさん
2006/11/23(木) 13:09:16どうしたらいいんでしょうか?
MFCだと
CWnd *myP = GetDlgItem(////);
CClientDC myDC(myP);
CRect myCR;
myP->GetClientRect(myCR);
myDC.FillSolidRect(myCR, RGB(255,255,255));
この部分のAPI化です。
APIのスレが書けなくなっていたので、スレ違いだとは思いますが
よろしくお願いします。
0451デフォルトの名無しさん
2006/11/23(木) 13:21:230452デフォルトの名無しさん
2006/11/23(木) 13:22:32MFCのソース見てみろ。
それだけならAPIを薄くラップしてるだけだ。
0453デフォルトの名無しさん
2006/11/23(木) 13:38:32>>452
あっ ありました!
ありがとうございました
0454デフォルトの名無しさん
2006/11/23(木) 15:20:39なぜかdeleteのところでエラーが発生してしまいます
やっていることは単純で、グローバルな変数(CWnd*)を
グローバルな関数(外部アクセスの関数)で作成するだけです
その関数内でnewの前に変数がNULL以外の場合はdeleteするようにしています
調べたところ、エラーは必ず発生するのではなく、ウィンドウを×ボタンで閉じて
そのウィンドウへのポインタをdeleteした場合にのみ発生しています
なぜこのようなエラーが発生するのかご存じないでしょうか?
また、このエラーに対処するにはどのようにすれば良いのでしょうか?
参考になるサイトなどがありましたら教えて頂きたいのですが・・・
0455454
2006/11/23(木) 15:22:20グローバス関数は何度も呼ばれることを前提としており、
呼ばれる度に前のウィンドウを破棄して新しく作る仕様です
以上、よろしくお願いします
0456デフォルトの名無しさん
2006/11/23(木) 15:23:41> このエラー
> このエラー
> このエラー
> このエラー
> このエラー
0457デフォルトの名無しさん
2006/11/23(木) 15:30:06アクセスがどうとかってエラーです
0458デフォルトの名無しさん
2006/11/23(木) 15:31:530459デフォルトの名無しさん
2006/11/23(木) 15:45:40MFC ライブラリ リファレンス
テクニカル ノート 17: ウィンドウ オブジェクトの破棄
http://msdn2.microsoft.com/ja-jp/library/5zba4hah(VS.80).aspx
0460デフォルトの名無しさん
2006/11/23(木) 15:58:43すみません
学校に行かないと環境がないので今は無理です・・・orz
>>459
ありがとうございます
参考にさせて頂きます
0461デフォルトの名無しさん
2006/11/23(木) 16:05:17学校なら先生に訊けよ
0462デフォルトの名無しさん
2006/11/23(木) 16:34:31情報系がメインの学校ではないので分かる人がいません・・・
追加で質問させて下さい
ウィンドウがすでにDestroyされていることを判断する方法ってありませんか?
例えば、下のようにウィンドウのポインタを定義します
CWnd* pTest;
これをnewしたりしてウィンドウを作ったとします
そして×ボタンが押された(DestroyWindowイベントが発生)とします
その時に、pTestからDestroyされたということを判断したいのです
そうすれば現在の問題は解決できるように思っています
どうかよろしくお願いします
0463デフォルトの名無しさん
2006/11/23(木) 16:38:530464450
2006/11/23(木) 16:56:21HBRUSH hBrush = CreateSolidBrush(RGB(255,255,255));//ブラシの設定
RECT rect;
::GetClientRect(m_hWnd, &rect);
::FillRect(hDC, &rect, hBrush);
すみません。同じ質問となるんですが、
こうしたら、ピクチャボックスの左上からウィンドウの右下までが白になってしまいました。
ピクチャボックスの全領域だけを白にするにはどうしたらいいでしょうか?
0465デフォルトの名無しさん
2006/11/23(木) 17:11:27myP->GetClientRect(myCR);
::GetClientRect(m_hWnd, &rect);
クライアント矩形を取る対象が違うと思うぞ
0466デフォルトの名無しさん
2006/11/23(木) 17:17:10どう書き直したらいいでしょうか?
0467デフォルトの名無しさん
2006/11/23(木) 17:45:140468デフォルトの名無しさん
2006/11/23(木) 17:54:44すみません。どうやったら取れるんでしょうか?
すみません。お願いします。
0469デフォルトの名無しさん
2006/11/23(木) 20:08:23VC++では作れませんか?
0470デフォルトの名無しさん
2006/11/23(木) 20:13:43引数の意味をよく読んでくれ。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/getclientrect.asp
あとここもよく読んどけ。
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows.asp
0471デフォルトの名無しさん
2006/11/23(木) 21:09:06C++/CLIなどを使ってよいのならVC++でもDataGridViewは使える。
単に表形式の表示がほしいだけならMSFlexGridがある。
0472デフォルトの名無しさん
2006/11/23(木) 21:16:37HWND hWnd = m_pict1.GetSafeHwnd();
というふうにして領域を取得できました!
ご迷惑をおかけしました。。
0473デフォルトの名無しさん
2006/11/23(木) 21:29:38レスありがとうございます。
MSFlexGridををViewにどう貼り付けるのですか?
0474デフォルトの名無しさん
2006/11/23(木) 23:08:590475デフォルトの名無しさん
2006/11/23(木) 23:57:34#include <string>で宣言して
string taro;
ってうってるだけなのにエラーがでる?
どうしてなの?
エラー内容は・・・・
エラー2error C2146: 構文エラー : ';' が、識別子 'taro' の前に必要です。
エラー3error C2065: 'taro' : 定義されていない識別子です。
エラー1error C2065: 'string' : 定義されていない識別子です。
です。わけわかめ。
0476デフォルトの名無しさん
2006/11/23(木) 23:58:49std:string
もしくは
using namespace std;
でFA?
0477454, 462
2006/11/23(木) 23:59:29よく分からないのですが、自身へのポインタをNULLにするには
どうやったらできるのですか?
処理は全体的にはシンプルなものです
ウィンドウを1つだけMFC-DLLによって表示させたいだけです
再呼び出しされたら以前のを消して新しく再表示させたいだけです
CWnd* pTest;//グローバル変数 同じcppファイル内のグローバル関数からのみ呼ばれる
アプリから呼ばれるグローバル関数
{
if(pTest != NULL) delete pTest;//←ここを2回目に通った(呼ばれた)時にエラー発生(Windowが閉じられた場合のみ)
//生成して表示する処理(略)
}
ただ、メモリ関連で大きくつまずいています(これによって進めなくなりました・・・)
ちょっと前までは明示的な処理によるメモリ開放という考え自体が全くありませんでした
(前に使ってた言語ではガベージコレクションで勝手に開放してくれたので・・・)
0478デフォルトの名無しさん
2006/11/24(金) 00:05:55ありがとうございました♪
こんなのに何時間もツマヅイテいたのかorz
0479デフォルトの名無しさん
2006/11/24(金) 00:43:40こういう表示がでたらどうしたらいいですか?
0480デフォルトの名無しさん
2006/11/24(金) 00:51:38> (新しい機能 ; ヘルプを参照)
> (新しい機能 ; ヘルプを参照)
> (新しい機能 ; ヘルプを参照)
C++/CLIはC++とは別言語なので注意
0481デフォルトの名無しさん
2006/11/24(金) 00:55:56文字通りstd::stringからSystem::Stringへは直接変換できない(暗黙の変換がない)。
std::string s;があったとしてこんな感じで変換できる。std::wstringも同様。
gcnew System::String(s.c_str(), 0, static_cast<int>(s.size()));
0482デフォルトの名無しさん
2006/11/24(金) 01:00:56なんとかデバックできたけど、複雑ですね。
もっと簡単なコードで変換とかできないのですか?
>>481さん
詳しく教えてくださると幸いです。
0483デフォルトの名無しさん
2006/11/24(金) 01:32:50そういうときには俺様ライブラリを作ってその中に放り込んでおくんだ。
inline System::String^ ToSysStr(const std::string& s)
{
return gcnew System::String(s.c_str(), 0, static_cast<int>(s.size()));
}
0484デフォルトの名無しさん
2006/11/24(金) 02:10:07ありがとうございます!
参考になります!
0485デフォルトの名無しさん
2006/11/24(金) 02:11:22ttp://strawberry.web-sv.com/cgi/up/atr/nm2005.txt.html
クロマキー合成させたいのですが、ビルドすると
構文エラー:if とか
構文エラー:return
と表示されてしまうのですがナゼでしょう?
ソース自体、間違っていたら指摘していただければ
幸いです。
0486デフォルトの名無しさん
2006/11/24(金) 02:23:25括弧の数が合わないとかそんなのじゃないのかな?
38-40行目の括弧が怪しい感じだ。
0487485
2006/11/24(金) 02:45:08}多かったっす。。。ありがとうございます( ̄∇ ̄)b
でも、出来た画像が真っ黒で・・。
合成は出来ませんでした。。
何か問題ありそうです。
0488デフォルトの名無しさん
2006/11/24(金) 02:49:28for(j=0;j<256;j++){
R=body1[i][j][2];//逆
G=body1[i][j][1];//逆
B=body1[i][j][0];//逆
//if ( R < 0x40 && G < 0x40 && B >= 0x80 ) {
if ( R < 80 && G < 64 && B >= 100 ) {
R=body2[i][j][2];
G=body2[i][j][1];
B=body2[i][j][0];
}
//}余分
new_body[i][j][2] = R;//逆
new_body[i][j][1] = G;//逆
new_body[i][j][0] = B;//逆
}
}
if ((fp3 = fopen("photo3.bmp","wb")) == NULL)
printf("ファイルオープンが出来ません\n");
else{
fwrite(head1, sizeof(head1), 1, fp3);
//fwrite(head2, sizeof(head2), 1, fp3); おいおい
fwrite(new_body, sizeof(new_body), 1, fp3);
fclose(fp3);
}
ねる
0490デフォルトの名無しさん
2006/11/24(金) 10:46:52クラスなら C
メンバ変数なら m_
ポインタなら P
文字列なら状況により str
って付けてるけど、構造体は S だと文字列みたいだから、
とりあえず全て大文字にしているけど、おもいらどうしてる?
0491デフォルトの名無しさん
2006/11/24(金) 11:13:12激しくスレ違い。
0492デフォルトの名無しさん
2006/11/24(金) 11:18:57そうだね。逝ってくる
0493デフォルトの名無しさん
2006/11/24(金) 14:05:56デバックのところの
ブレークポイント- フィルタの意味がわかりません。
これはどういうときに使うのでしょうか?
0494デフォルトの名無しさん
2006/11/24(金) 14:08:180495デフォルトの名無しさん
2006/11/25(土) 02:22:59ブレークポイント
フィルタ処理
0496デフォルトの名無しさん
2006/11/25(土) 17:24:150497デフォルトの名無しさん
2006/11/25(土) 18:35:360498デフォルトの名無しさん
2006/11/25(土) 19:36:380499デフォルトの名無しさん
2006/11/25(土) 22:25:470500デフォルトの名無しさん
2006/11/26(日) 01:54:53ネットワークはネットで色々調べて概念だけはなんとかわかるようになったんですが、
実際プログラム作成しようとしても上手くいきません。
2005用に作成されたソースやコードではないためだと思いますが
ttp://stylefree.net/main/nprogramming/windows/windows2.shtml
このへんのサンプルをコピペしてもビルドできません。
("stdafx.h"をインクルードしろって言われて、それをインクルードするとさらにエラーが増える)
2005でも実行できるようなネットワークプログラミング講座みたいな
サイトや書籍で参考になるものがあれば教えてください。
もしくは、その他何か解決できる方法があれば教えてください。
よろしくお願いします。
0501デフォルトの名無しさん
2006/11/26(日) 02:02:52ネットとか本を参考にサンプルを作ったりしているんですが、うまくビルドできません。
例えば
ttp://stylefree.net/main/nprogramming/windows/windows2.shtml
このサンプルとか。
(コピペしてビルドすると、"stdafx.h"をインクルードしろ、と言われ
それを実行すると100以上のエラーが出てくる)
おそらく、2005ではなく2002や6.0向けに書かれたサンプルで
ケアされてないコードなどが入っているためだとは思いますが、
そういうサンプルだと勉強してもやりたいことに直結しないし、
何よりも2005の機能をうまく使えない気がします。
2005を用いたネットワークプログラミング講座みたいな
参考になる書籍やサイトなどがあれば、教えて欲しいです。
もしくは、その他解決方法があれば教えてください。
お願いしますm(_ _)m
0502デフォルトの名無しさん
2006/11/26(日) 02:03:380503デフォルトの名無しさん
2006/11/26(日) 02:55:470504デフォルトの名無しさん
2006/11/26(日) 05:34:14stdafx.hが何なのか理解してないだろ。
>>503
おまえで何の言っているんま?
0505デフォルトの名無しさん
2006/11/26(日) 06:50:210506デフォルトの名無しさん
2006/11/26(日) 09:23:020507デフォルトの名無しさん
2006/11/26(日) 09:23:53コピペした方が間違えなくていい
> さて今回はネットワークプログラミング入門と言う事で
> ネットワークプログラミングの雰囲気に簡単ですが触れてもらおうと思います。
> 詳しい説明はしないので下にあるコードを実際に打ってみてください
> (コピー&ペーストはしないで実際に打つ)。
0508500
2006/11/26(日) 09:50:44ネットゲームの中でチャットを使いたいんですよ。
本とかを読んでいたらネットワークプログラムを学ぶのに初めはチャットが適しているってあったもので。
検索してみたら同じエラーの対処法などが書いてあり、
cppファイルかプロジェクトのプロパティで「プリコンパイルヘッダを自動的に使用」をチェックするとありました。
しかし、2005にはそんなチェックはなく、「プリコンパイルヘッダを使用しない」をチェックしてもエラーが増えるだけでした。
ソースコードはコピペです。
手打ちでやった後ビルドできなかったのでコピペに切り替えました。
0509デフォルトの名無しさん
2006/11/26(日) 10:00:27この辺からやってみろ
int main( int argc, char *argv[])
{
return 0;
}
0510デフォルトの名無しさん
2006/11/26(日) 10:02:10int main()
{
return 0;
}
0511500
2006/11/26(日) 10:08:16新規作成→プロジェクト→Win32 コンソールアプリケーション、ファイル名"buildtest"
//buildtest.cpp
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
このままビルドしたら問題なくビルドできました
0512デフォルトの名無しさん
2006/11/26(日) 10:09:40それはどっちもまともな対処法ではない。説明するのも面倒だから、とりあえず
新しいプロジェクトを(プリコンパイル済みヘッダを使わない指定をしないようにして)作り、
そっちのプロジェクトへ全てのソースコードを移せ。
0513デフォルトの名無しさん
2006/11/26(日) 10:21:18で、このときプリコンパイル済みヘッダのチェックをはずして作成、
>>500のソースコードを全部コピペしてみましたが、やはりエラーがでました。
stdafx.hをインクルードしたり、stdio.hのインクルードを消したりしてみましたが
やはり結果は一緒でした。
0514デフォルトの名無しさん
2006/11/26(日) 10:37:470515デフォルトの名無しさん
2006/11/26(日) 10:50:01これなら問題なくビルドできたんですが。
#include "stdafx.h"
#include <iostream>
using namespace std;
int main( int argc, char *argv[]){
cout<<"Hello, world";
//出力を眺めるため入力を待つ
int i;
cin>>i;
return 0;
}
いろいろ調べ続けてはいるんですが・・・
VC++ってプリコンパイル済みのヘッダ"stdafx.h"が出てくるまでその行を探し続ける
ってことなんで、stdafx.hをインクルードして100以上もエラーが出るっていうのは
stdafx.hじゃなくて他のところが悪いんでしょうか?
0516デフォルトの名無しさん
2006/11/26(日) 10:57:50心優しい俺様が、懇切丁寧に教えてやろう。
1. Win32コンソールアプリケーションのプロジェクトを作成
アプリケーション設定の空のプロジェクトにチェックを入れておくこと。
2. 新規ソースファイルを一つ追加。main.cppとでもしておけばいい。
3. それにソースをコピペした後、タブ代わりの全角空白を全部削除する
全選択した後、編集-詳細-左右スペースの削除を使え。
5. ws2_32.libをリンクするように設定。
プロジェクトの設定でもできるが面倒なので、
#pragma comment(lib, "ws2_32")
上の行を#includeとmainの間にでも入れておけ。
6. ビルドしてみろ。
以上。
0517デフォルトの名無しさん
2006/11/26(日) 10:58:420518デフォルトの名無しさん
2006/11/26(日) 10:59:400519デフォルトの名無しさん
2006/11/26(日) 11:05:15>>515
エラーメッセージも書かない能無しは死ね。
0520500
2006/11/26(日) 11:10:09ありがとうございます!
うまくビルドできました!
#pragmaを設定していなかったのと、空白を削除していなかったのが原因だと思います。
無意味な空白があるとビルドできなかったりするんですね。
>>519
すいません。
あまりにも量が膨大なので、リンクしようにもアップが面倒だったんです。
0521500
2006/11/26(日) 11:12:17やっと先に進むことができます。感謝、感謝です。
0522デフォルトの名無しさん
2006/11/26(日) 11:29:31空白に使ってる が駄目なんだよ なら問題ない
0523500
2006/11/26(日) 11:34:12文字列以外のところで全角は使っちゃいけないってことか。
エラーの時に言ってた読み込めない識別子がありますってこれのことだったんですね。
0524デフォルトの名無しさん
2006/11/26(日) 12:07:00このエラーメッセージを最初から書いていれば一発でしたね!
0525500
2006/11/26(日) 12:21:42・・・ごめんなさい(´・ω・`)
0526デフォルトの名無しさん
2006/11/26(日) 13:07:31<iostream>とかライブラリのヘッダのインクルードは全てstdafx.hの中に書け。
そのためのstdafx.hとプリコンパイルドヘッダだ。
0527500
2006/11/26(日) 13:40:28そうだったんですか!
目からうろこです。
じゃあ上のサンプルの<winsock2.h>とか<conio.h>とかも全部まとめちゃうんですね。
マジここの人達優しすぎ (つД`)
0528デフォルトの名無しさん
2006/11/26(日) 13:45:480529デフォルトの名無しさん
2006/11/27(月) 05:08:07どういう設定をしたらできるんでしょうか?
0530デフォルトの名無しさん
2006/11/27(月) 06:00:17話はそれからだ。
0531529
2006/11/27(月) 06:22:14フォルダの中に入っているファイルを1つ指定して開きたんですけど、
ifstreamを使う場合、どうやったら指定ファイルを開くことができるんでしょうか?
したいことは「ループして次々にフォルダの中のファイルを開いていく」です。
できたら、指定ファイルを検索して開きたいです。
0532デフォルトの名無しさん
2006/11/27(月) 07:37:59>ループして
だから日本語で書けと。
0533デフォルトの名無しさん
2006/11/27(月) 07:48:26APIを使ってピクチャボックスに絵を描いているのですが
絵を表示させるのが遅い場合、途中で強制終了することってありますか?
やっぱりどっかがおかしいからそうなるんですかね?
0534533
2006/11/27(月) 08:05:190535デフォルトの名無しさん
2006/11/27(月) 11:41:19ビューが生成されているかどうかをしりたいのですが
どうしたらわかるのでしょうか?教えてください
0536デフォルトの名無しさん
2006/11/27(月) 12:22:570537デフォルトの名無しさん
2006/11/27(月) 14:37:30CString ss = "可変長文字列 250件";
のようなデータがあったとして、数値データ(今回だと250)を
取り出す時にどのようにしたらよいのでしょうか?
isdigit()なんかで一文字ずつ比較すればできそうですが
データの長さによってはかなり検索が膨大になりそうなので
なるべく簡易にしたいのです。よろしくお願いします。
0538デフォルトの名無しさん
2006/11/27(月) 14:46:190539デフォルトの名無しさん
2006/11/27(月) 14:48:180540デフォルトの名無しさん
2006/11/27(月) 14:55:25// 空白がないと破綻するから、実際にはもう少し複雑になる。
//
int num;
sscanf(strrchr(ss, ' '), "%d", & num);
0541537
2006/11/27(月) 14:59:11>539
レスありがとうございます。
そうそう都合のいいメソッドなどはないようですね(´・ω・`) ショボーン
一文字ずつ比較することにします。
0542デフォルトの名無しさん
2006/11/27(月) 15:00:56その文章を一文字ずつ表示するようなプログラムを作りたいのですが、
%c を使うと化けてしまうし、%s では文章を全て表示してしまいます。
どうすればいいでしょうか
0543537
2006/11/27(月) 15:05:29レスありがとうございます。
入れ違いになってしまったようですね。
空白は場合により増えたりします。ですが
必ず一つはあるので空白を利用する方法も考えてみます。
0544デフォルトの名無しさん
2006/11/27(月) 15:12:16例えばShiftJisで2バイト文字しか扱わないのであれば、単純に%2cで出力する手もある。
或いは、%.2sでもいい。
0545デフォルトの名無しさん
2006/11/27(月) 15:18:22自分の代わりにその中の人がやるだけ
0546デフォルトの名無しさん
2006/11/27(月) 21:47:06VC++EEを使ってるんですが、描画などの機能はAPIを使ったほうがいいんでしょうか?
それとも、VC++EEの機能を使った方がいいんでしょうか?
どちらも一緒のような気もするんですけど、
それらの利点や欠点などもあれば、上記の質問と一緒にお答えいただきたいです。
お願いします。
0547デフォルトの名無しさん
2006/11/27(月) 21:53:49利点欠点なんか自分で使わないとわからん
0548デフォルトの名無しさん
2006/11/27(月) 22:17:160549デフォルトの名無しさん
2006/11/27(月) 22:50:500550デフォルトの名無しさん
2006/11/27(月) 23:00:550551デフォルトの名無しさん
2006/11/27(月) 23:01:350552デフォルトの名無しさん
2006/11/27(月) 23:44:08子ウィンドウを作成しています。
CMDIChildWndクラスのOnCreateメソッド内でダイアログバー
を作成し、ボタンコントロールの動的作成を行おうとしたのですが
作成したボタンが表示されません。一応ShowWindowメソッドも実行
してみたのですが変化なしでした。わかる方いましたら
教えてください。お願いします。
以下はソースの抜粋です
int CMyChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
return -1;
//ダイアログバーの作成
m_wndDialogBar.Create(this, IDD_TESTDLG, CBRS_TOP, IDD_TESTDLG);
//ボタンコントロールの動的作成
CButton clsBtn1;
clsBtn1.Create(L"ボタン1", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,70), this, 10);
return 0;
}
0553デフォルトの名無しさん
2006/11/27(月) 23:52:550554デフォルトの名無しさん
2006/11/27(月) 23:57:08仕様なんで・・・。
それと、なぜ動的に作成するかと言いますと
DBから持ってきたデータによっていくつ作るか
変わるからです。
0555デフォルトの名無しさん
2006/11/28(火) 00:26:50575 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/28(火) 00:14:46
ファイルを開くダイアログでプレビュー機能をつけたくて
とりあえず、OpenFileDialogを継承してみたのですが、プレビューさせるコントロールをはる
ところがわかりません。
576 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/28(火) 00:17:55
c++スレに帰ったほうがいいよ。
577 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/28(火) 00:19:14
>>574
Microsoft Scripting Runtimeを参照設定しました。
578 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/28(火) 00:19:40
C#ではそんなことすらできないんですか?
となると、要望の多い業務アプリにはやはり不向きなんですね
0556デフォルトの名無しさん
2006/11/28(火) 00:43:310557デフォルトの名無しさん
2006/11/28(火) 02:00:44新しいダイアログの閉じるボタンを非表示にしたいと考えています。
どうすればよいのでしょうか。
0558デフォルトの名無しさん
2006/11/28(火) 02:37:330559デフォルトの名無しさん
2006/11/28(火) 03:32:44CMainFrameでメインウィンドウはできたのですが、子ダイアログの方法がわかりません。
0560デフォルトの名無しさん
2006/11/28(火) 07:52:240561デフォルトの名無しさん
2006/11/28(火) 08:43:41お前が試してみたのと同じ方法だったら嫌だし
こうやってみ
それはもう試したけどだめでした
0562デフォルトの名無しさん
2006/11/28(火) 11:54:460563デフォルトの名無しさん
2006/11/28(火) 12:36:50#include <windows.h>
int aaa(int a)
{
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPreInst, LPSTR CmdLine, int CmdShow )
{
aaa(123);
return 0;
}
をコンパイルして出力されたバイナリにGetSystemTimeAsFileTimeなどの身に覚えのないコードが入ってしまいます
これらを入れないようにするオプションなどありますでしょうか?
よろしくお願いします。
0564デフォルトの名無しさん
2006/11/28(火) 13:18:240565デフォルトの名無しさん
2006/11/28(火) 13:38:27おかげさまで解決しました、ありがとうございました。
0566デフォルトの名無しさん
2006/11/28(火) 13:46:160567552ですが
2006/11/28(火) 14:01:08作成したボタンのクリックイベントの取得ができません。
どのようにしたらよいのでしょうか?教えてください。
0568デフォルトの名無しさん
2006/11/28(火) 14:27:33returnしか書いてなかったりしちゃったりして
0569デフォルトの名無しさん
2006/11/28(火) 15:33:47どうせいじるなら自作した方が便利だぞ
0570デフォルトの名無しさん
2006/11/28(火) 18:56:09ウィンドウとコンソールを同時に使う方法を教えてください。
リンカで/SUBSYSTEMをつついてみたり
WinMainの中でprintfからConsole::WriteLineとReadLineまで
色々呼んでみましたがダメでした。
0571デフォルトの名無しさん
2006/11/28(火) 19:05:330572デフォルトの名無しさん
2006/11/28(火) 19:07:52エントリーはmain()でウィンドウ作ったほうが楽。
0573デフォルトの名無しさん
2006/11/28(火) 19:09:00/SUBSYSTEM:CONSOLEでいけると思うけど、指定の方法が悪いのでは。
あとから edlitbin /SUBSYSTEM:CONSOLE xxx.exe で試してみたらいい。
0574デフォルトの名無しさん
2006/11/28(火) 19:45:04それってそのままstdoutとか使える?
0575570
2006/11/28(火) 19:52:59色々やってみたいと思います。ありがとうございました。
>>574は別の人です。
0576デフォルトの名無しさん
2006/11/28(火) 21:47:550577デフォルトの名無しさん
2006/11/29(水) 02:02:23インスタンスハンドルはGetModuleHandle(0)、WinMainの最後の引数はSW_SHOWDEFAULTで代用。
コマンドライン引数はargc, argvのほうが便利。(どうせグローバル変数にもあるけどさ)
0578デフォルトの名無しさん
2006/11/29(水) 02:27:18ウィンドウメッセージ取れないぜ?
0579デフォルトの名無しさん
2006/11/29(水) 10:28:080580デフォルトの名無しさん
2006/11/29(水) 12:09:560581デフォルトの名無しさん
2006/11/29(水) 17:16:320582デフォルトの名無しさん
2006/11/29(水) 17:19:400583581
2006/11/29(水) 17:22:440584デフォルトの名無しさん
2006/11/29(水) 17:41:32そして名前が被ることを防ぐため、標準ライブラリに含まれる殆ど全ての名前は
名前空間stdの中に収められている。名前空間内の名前は、std::coutのように::で指定する。
互換性のため、using namespace std;と書けばそれを書いた位置の有効範囲内では、
従来どおりcoutなどのようにして使える。
0585デフォルトの名無しさん
2006/11/29(水) 18:31:03using namespace std;
class kouza {
private:
long number;
long yokin;
public:
kouza(long no,long yok){
number=no;
yokin=yok;
}
long kouza_no(){return number;}
long kouza_yokin(){return yokin;}
void ireru(long okane){yokin+=okane;}
void orosu(long okane){yokin-=okane;}
};
0586デフォルトの名無しさん
2006/11/29(水) 18:31:48kouza abe(1,1345);
kouza itou(2,334);
abe.ireru(345);
itou.orosu(330);
cout<<"安部の番号とお金"<<abe.kouza_no()<<"と"<<abe.kouza_yokin".\n";
cout<<"イトウの番号とお金"<<itou.kouza_no()<<"と"<<itou.kouza_yokin;
}
0587デフォルトの名無しさん
2006/11/29(水) 18:34:00ミスが見つからないんですけど、どっかにあるんですか?それとも設定の段階でうまくいってないとかですか?
c:\program files\microsoft visual studio 8\vc\include\cstdio(25) : error C2143: 構文エラー : '{' が ':' の前にありません。
c:\program files\microsoft visual studio 8\vc\include\cstdio(25) : error C2059: 構文エラー : ':'
c:\program files\microsoft visual studio 8\vc\include\cstdio(25) : error C2143: 構文エラー : '{' が ':' の前にありません。
c:\program files\microsoft visual studio 8\vc\include\cstdio(25) : error C2059: 構文エラー : ':'
c:\program files\microsoft visual
0588デフォルトの名無しさん
2006/11/29(水) 18:39:140589デフォルトの名無しさん
2006/11/29(水) 18:41:580590デフォルトの名無しさん
2006/11/29(水) 18:46:05cout<<"イトウの番号とお金"<<itou.kouza_no()<<"と"<<itou.kouza_yokin()<<"a\n";
にしてもなおりませんでした
0591デフォルトの名無しさん
2006/11/29(水) 18:56:42C++のつもりがC設定になっていたことが原因でした。
0592デフォルトの名無しさん
2006/11/29(水) 19:32:31VC++とは、関係ないかもしれませんが、
sizeof(long double) * 8 で出力すると64ビットになるんですけど
これはこれでいいんですか?
Borland C++ Compilerで同じ事をすると80にちゃんとなるんですけど。
0593デフォルトの名無しさん
2006/11/29(水) 19:45:220594デフォルトの名無しさん
2006/11/29(水) 19:55:08MSDNのリファレンスにも「same as double」とちゃんと書いてある
一方BorlandC++ではlong doubleは10バイト使ってる
0595デフォルトの名無しさん
2006/11/29(水) 19:56:410596デフォルトの名無しさん
2006/11/29(水) 20:01:35なにか、テキストどおりじゃないのが釈然としませんが、・・・
大人の世界はいろいろとあるでしょうからそこはあきらめてVCとお付き合いしていきます。(T-T
0597デフォルトの名無しさん
2006/11/29(水) 20:18:20ならshort使っとけば?
0598デフォルトの名無しさん
2006/11/29(水) 20:23:51規格的にはどっちも正しい
0599デフォルトの名無しさん
2006/11/29(水) 21:42:470600592
2006/11/29(水) 21:52:10なんとなく嘘だと思いつつやってみたw short double。
>>598,599
最初の方に最小を規定しているとは書いてあったけど、
テキストに80bitって書いてたから・・・・
ググって調べたら「典型的なlong double」は80bitってなってました。
0601592
2006/11/29(水) 21:55:22Borlandさんは、拒否された。
0602デフォルトの名無しさん
2006/11/29(水) 22:06:58わかりやすいような・・・・わかりにくいような・・・・
でも・・・・、printfのformat指定子と一致するようにしたのかな?・・・・
まぁいいや!
みなさんありがとうございました。
0603デフォルトの名無しさん
2006/11/29(水) 22:23:19C99の<stdint.h>にはint32_tのようなビット数固定の型がある。
>>600
long doubleが80ビットなのはx86/x64のFPUに因む。
x86/x64以外で80ビットを使用しているものは聞いたことが無い。
つまり80ビット浮動小数点数はむしろ珍しい。(ただPCでは圧倒的なシェアを誇っているけど)
>>601
K&R Cではlong floatはdoubleと同じとされていたらしい。
少なくとも現在のISO C/C++にlong floatは存在しない。
0604デフォルトの名無しさん
2006/11/29(水) 22:39:200605デフォルトの名無しさん
2006/11/29(水) 22:50:18SDIモードで作成したMFCウィンドウにコントロールを追加する方法が分かりません
以前Javaをやっていたので、基本的にコントロールのインスタンスを生成して配置して表示すれば良いということは分かります
しかし、それをどこで行えば良いのかが分かりません
ドキュメントビューアーキテクチャ?という独特な形式になっているのと、MFCで隠れた部分が多いのとでごちゃごちゃしている
ように思えてしまい、どこにコードを記述して良いのかさっぱり分かりません(コンストラクタでやってみたら失敗しましたし・・・)
この問題を解決するアドヴァイスまたは参考になるサイトについての情報を頂けないでしょうか?
また、新しくウィンドウ(ダイアログではなく)を追加したい場合にはどうしたら良いのでしょうか?
Javaの場合は単にFrameを継承したクラスのインスタンスを生成して表示メソッドを実行すれば良かったのですが、
VC++で同じようなことをしてみても上手くいきませんでした(アクセスがどうとかというエラーが出て落ちます・・・)
やはりドキュメントビューアーキテクチャやMFC内部が関係しているのでしょうか?
解決に結びつくようなアドヴァイスを頂けないでしょうか?
0606デフォルトの名無しさん
2006/11/29(水) 23:00:47少なくともCWndのメンバ関数ぐらいは全部目を通しておいた方がいい。
0607デフォルトの名無しさん
2006/11/29(水) 23:01:500608デフォルトの名無しさん
2006/11/29(水) 23:10:05MAX_LENGTHは最大いくらまで代入することができるんですか?
0609デフォルトの名無しさん
2006/11/29(水) 23:11:40ものすごいしょーもない質問かもしれないんですが教えてください
String^ testで宣言した変数が test="10 20" のとき,int型の i1=10,i2=20 に変換したり
同様に"10.0 20.0"を double型の d1=10.0,d2=20.0 に変換するときは
どんな処理をすればいいんでしょうか?
連続した数字の文字列だったら int::Parseを使えばいいと思うんですけど、
間にスペースとかコンマが入ってるときはわかりません…。
どうかよろしくお願いいたします。
0610デフォルトの名無しさん
2006/11/29(水) 23:13:42CStringのソース見ろ
0611デフォルトの名無しさん
2006/11/29(水) 23:16:460612デフォルトの名無しさん
2006/11/29(水) 23:23:07ハードディスクに空き容量が足りないとメッセージが出てきました。
どうすればいいですか?
0613デフォルトの名無しさん
2006/11/29(水) 23:28:330614デフォルトの名無しさん
2006/11/29(水) 23:30:270615デフォルトの名無しさん
2006/11/29(水) 23:39:10// always allocate one extra character for '\0' termination
// assumes [optimistically] that data length will equal allocation length
{
ASSERT(nLen >= 0);
ASSERT(nLen <= INT_MAX-1); // max size (enough room for 1 extra)
0616612
2006/11/29(水) 23:39:14実は友達に>>612を聞かれて・・・・(T-T
一瞬フリーズして、それから「う〜んと、それぐらい自分で解決できないなら止めた方がいい」って言ったんだよ。
そしたら、涙流しながら激怒されて・・・・
女の子は・・・その涙流してるシーンだけで「教えてあげればいいじゃん」とかいいやがる!
事情を説明しても「誰でも最初は初心者」とか・・・・得意げに語り出すし・・・・・・・もう、おれ泣きたかった
スレ汚しごめんなさい。
ちょっと気が楽になりました。
0617デフォルトの名無しさん
2006/11/29(水) 23:40:59配列サイズ(!=要素数)が0x7FFFFFFFを超えないこと。
コンパイルエラーC2148を参照
0618デフォルトの名無しさん
2006/11/29(水) 23:45:110619デフォルトの名無しさん
2006/11/29(水) 23:48:55そういえば16ビット時代のMSCはlong doubleは80ビットだった。
32ビットのコンパイラで64ビットになって何でやねんと思った。
0620デフォルトの名無しさん
2006/11/29(水) 23:49:08お前は泣いていい思う。
周囲が言いたいことも分らんのでも無いんだが……現実はなぁ。
0621605
2006/11/30(木) 00:05:51レスありがとうございます
それで、どこで生成すればよろしいでしょうか?
0622デフォルトの名無しさん
2006/11/30(木) 01:03:24その現象なんですが、何も設定していないピクチャボックスにピクチャボックスの領域を越える座標点の図を描きました。
実行してウィンドウの外まで越えることはなかったのですが、ピクチャボックスからはみ出て、ウィンドウの終端まで描画される事となりました。
そこで、ピクチャボックスのサイズでクリッピングをして解決しました。
で、今日そのことを大学の先生に話したのですが、ピクチャボックスの領域を越える描画をした場合は自動的クリッピングするという事と、
ピクチャボックスは専用のメモリを割いているから領域を越える事はない、と言われました。しかし、確かそうだった、と言われたのでココに書き込ませていただきました。
要はピクチャボックスに描いたのではなく、画面に描いた事になっているのでは?ということでした。
m_pict:ピクチャボックスのメンバ変数です。
HDC hDC = m_pict.GetDC()->GetSafeHdc();HWND hWnd = m_pict.GetSafeHwnd();
/*----------------------------------------------------------------------------*/
RECT rect;
::GetClientRect(hWnd, &rect);
HRGN hRgn = ::CreateRectRgn(rect.left, rect.top, rect.right, rect.bottom);
::SelectClipRgn(hDC, hRgn);
::SetMapMode(hDC, MM_ANISOTROPIC);
::SetWindowExtEx(hDC, 500, 500, 0);
/*-----------------------------------------------------------------------------*/
ピクチャボックスの範囲を越えて描画されたときに書いたのが、コメントの上の一行だけで、この一行しか書いていませんでした。
それプラス、コメントで囲まれた部分を書くことによって、クリッピングしてピクチャボックス内に描画することができました。また大きい図でしたので座標系を設定しなおしました。
ビットマップ転送を使えばいいんじゃないか?と言われましたが、それは置いといて、
上記のソースだと、なぜピクチャボックスの領域を越えて描画されたのか?
また、この場合だとピクチャボックスに描画しているのでなく、実は画面に描画しているのか?
以上の2点の問題点を教えて頂きたいと思います。
まだまだ若輩者ですが、今後のためにどうかよろしくご指導お願いいたします。
0623デフォルトの名無しさん
2006/11/30(木) 01:11:060624デフォルトの名無しさん
2006/11/30(木) 02:03:43スライダをデフォルトでVisible Falseにしておいて
あるボタンを押すと表示するようにしたいのですが、どうすればいいんでしょうか?
CButton *btn = (CButton*)GetDlgItem(IDC_BUTTON1);
btn->EnableWindow(true);
ボタンであればこのようにすればいいのはわかるのですが。
0625デフォルトの名無しさん
2006/11/30(木) 02:26:27表示したいのか有効にしたいのかはともかく、
ShowWindowもEnableWindowもCWndのメンバ関数だから。
後、MFCでダイアログのコントロールにアクセスしたいなら、メンバ変数にしておくと楽。
方法は「ダイアログエディタ メンバ変数」でVSのヘルプを検索しる。
0626デフォルトの名無しさん
2006/11/30(木) 06:56:03使おうとするクラスやライブラリのリファレンスにすら目を通さない輩はやる資格無し
帰れ
0627デフォルトの名無しさん
2006/11/30(木) 17:34:28ありがとうございます。
>>626
もう家です。というか家から書き込んでます
0628デフォルトの名無しさん
2006/11/30(木) 19:32:03だから、だったんですか。
勉強になりました。
ありがとうございます。
0629605
2006/11/30(木) 23:04:15フレームとビューとドキュメントをCCreateContextで連結させるのに苦労しました
上手に表示されたときはとってもハッピーになりました
さて、申し訳ないですが本日も質問があります
それはビュー(CFormView)に張り付けたダイアログリソースについてです
なぜか分からないですが、呼び出しアプリケーション側のダイアログリソースに置き換わってしまいます
DLLのダイアログリソースが表示されません
Resource.hが怪しいと思っていますが、どうすれば解決できるのか分かりません
アドヴァイスを頂けませんか?
あと、昨日の質問が残っています
>>62の後半、メモリ開放についてです
CFormWndのインスタンスを持っているのはDLL側です
ユーザが閉じるボタンやAlt+F4でデストロイしたことを察知して2度デストロイやdeleteするのを防ぎたいです
大変にクリティカルな問題なのでとても悩んでいます
インターネット検索や書籍で解決策を探していますが、まだ解決には至っていません
アドヴァイスをお願いします
0630629
2006/11/30(木) 23:05:43無視してください
0631初心者
2006/11/30(木) 23:22:20CCreateContext cont;
cont.m_pCurrentDoc = GetDocumet();
cont.m_pNewViewClass = RUNTIME_CLASS(CHogeView); //CFormViewを継承したView
form = (CFormWnd*)RUNTIME_CLASS(CFrameWnd)->CreateObject();
form->Create(NULL, "hoge", WS_CAPTION | WS_OVERLAPPED | WS_SYSMENU, r, ::AfxGetMainWnd(), NULL, &cont);
form->ShowWindow(SW_SHOW);
とこのように追加ウィンドウを作っているのですが、MDI の子ウィンドウ作成に応用したところ問題が発生しました
具体的には、
CFormWnd
を
CMDIChildWnd
に単純に変更したところ、赤丸+バッテンのエラーメッセージが表示されてプログラムが落ちました
CMDIChildWnd は CFormWnd を継承したクラスなので大丈夫だろうと思っていたのですが駄目でした
やりたいことは単純で、とにかく MDI の子ウィンドウを手動で生成して動的に追加したいだけです
データの受け渡しはポインタを使用してどうにでもなりますが、表示されない問題はどうにもなりません
この問題についてご存知の方はアドヴァイスをお願いしますm(_ _)m
0632デフォルトの名無しさん
2006/11/30(木) 23:42:51デバッガ使えないの?
0633デフォルトの名無しさん
2006/11/30(木) 23:56:000634デフォルトの名無しさん
2006/12/01(金) 03:20:20実行ファイルを常に手前に表示させたいのですがどうすればよいのでしょうか。
0635デフォルトの名無しさん
2006/12/01(金) 03:47:59FormViewで開発を行っているのですが、
SetWindowPos( &wndTop, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE );
と記述してもダメでした。
0636デフォルトの名無しさん
2006/12/01(金) 09:20:120637デフォルトの名無しさん
2006/12/01(金) 09:35:03表示の順番を拡張子順にして、
a、b、c、dで始まる拡張子のファイルは
別ディレクトリに移動させる。
0638デフォルトの名無しさん
2006/12/01(金) 11:18:34今組み合わせを考えるプログラムを作ろうと思っています。
例えば1円玉、5円玉、10円玉、50円玉、100円玉、500円玉のチェックボックスを作り、
これで1000円を作る組み合わせは何通りか、そしてその内訳はどんなものかを表示するものです。
このとき、チェックボックスでチェックされていないものは除外するものとして、
まず "あなたの選んだ硬貨は ○と○と○ です" みたいな出力の仕方がわかりません。
ifでくくっていってわざわざ5!/2通りのプラグラムを組むのは違うと思いますし。
それから、その検索ルーチンも硬貨がふたつだけならなんとかなるんですが、
3つ以上だとどのように組んだらいいか手に負えません。
ヒントだけでもいいので上のプログラムの手ほどきをしてもらえないでしょうか?
0639デフォルトの名無しさん
2006/12/01(金) 11:34:540640デフォルトの名無しさん
2006/12/01(金) 11:45:58とりあえずMessageBox() でいいんじゃね?
0641デフォルトの名無しさん
2006/12/01(金) 12:12:01s += ((is_a) ? (a) : (""));
s += ((is_b) ? (b) : (""));
s += ((is_c) ? (c) : (""));
・
・
MessageBox("あなたの選んだ硬貨は " + s + " です");
0642デフォルトの名無しさん
2006/12/01(金) 12:25:24それが解決してからだな
パズルを出題しあうスレ
http://pc8.2ch.net/test/read.cgi/tech/1153476618/
0643デフォルトの名無しさん
2006/12/01(金) 12:32:310644デフォルトの名無しさん
2006/12/01(金) 14:53:58ウィンドウクラス(CWindow)を他のプログラムでも利用できる様に
作業ディレクトリとは別に置いて
[ツール]-[オプション]-[ディレクトリ]で
インクルードファイルとソースファイルを指定しましたが
プリコンパイル済みヘッダーや、継承しようとすると
C2065定義されていない等のエラーが発生してしまいました
別ディレクトリにあるファイルを継承等する場合
他にやるべき事があるのでしょうか?
前方宣言も効果なしでした。
0645デフォルトの名無しさん
2006/12/01(金) 15:28:010646デフォルトの名無しさん
2006/12/01(金) 16:12:31日本語でどうぞ。
0647デフォルトの名無しさん
2006/12/01(金) 16:24:06インクルードがうまくいかないのだったら、ヘッダが見つからないというエラーになるはず。
0648644
2006/12/01(金) 16:38:16#include "CWindow.h" を加えないとエラーが出てしまうようで
直接置いてると継承先のヘッダーだけでいいのですが
ヘッダーでインクルードしてるのに
ソースでもインクルードとか、おかしいな。
後、ツールでディレクトリを指定しなくても動作する
2度ビルドするとエラー(警告ではない)が消える
分からん。頭冷やします。とりあえず再インストール
0649644
2006/12/01(金) 16:45:48○直接置いてると継承先でインクルードするだけでいいのですが
0650デフォルトの名無しさん
2006/12/01(金) 17:00:060652644
2006/12/01(金) 17:31:27[ツール][オプション][ディレクトリ]の設定において
出来るだけ上に指定してやる事で
継承先にヘッダーをインクルードするだけでいけました。
プリコンパイルの方はまだやってませんが
0653デフォルトの名無しさん
2006/12/01(金) 18:35:13よかった
0654デフォルトの名無しさん
2006/12/01(金) 19:14:03取りあえず、じゃぁ初心者ということでパソコンの勉強から始めようね
と、パソコン技術体系 OS編とハードウェア編をあげて、
e-wordのサイトを教えました。
あいつには理解できないだろうが、
「これで、中学生以上なら独習できるよ。」と言い放ちました。
なんか、すっきりした。
0655初心者@質問
2006/12/01(金) 19:35:03関数名(例えばfunc)⇒その関数へのポインタ
ですが、'&'をつけて(&func)も、
別にかまわないのでしょうか?
ちなみにvisual C++ 2005 EEでコンパイルしたところError&Warningはありません。
0656デフォルトの名無しさん
2006/12/01(金) 20:52:51逆に呼び出すときに*を付けても構わない。ただし演算子の優先順位に注意。
0657デフォルトの名無しさん
2006/12/01(金) 20:54:20以下のように同じ値が出てしまいます。
883 526 841 863 1437 175 1321 998
883 526 841 863 1437 175 1321 998
1422 68 1117 1486 273 149 74 1039
1422 68 1117 1486 273 149 74 1039
システムの時刻と乱数が関係していることが影響しているらしいのですがどうすれば
正常に毎回違う値が出力されるようにできるのでしょうか?
0658デフォルトの名無しさん
2006/12/01(金) 20:58:450659初心者@質問
2006/12/01(金) 21:01:37そうですか。(WEB上でどこかのHPにそれを説明していない
か探してみたんですが、見つからなくて不安でした。)
そう言いきってもらえると気持ちいいです。
0660デフォルトの名無しさん
2006/12/01(金) 21:02:01具体的なプログラムは以下の通りですがどこかおかしい点が有ればご指摘お願いします。
for(int i=0; i<100; i++)
{
System::Random^ ran = gcnew System::Random();
int r;
for(int j=0; j<30; j++)
{
r=ran->Next(1500);
writer->Write(r+" ");
}
writer->WriteLine();
}
writer->Close();
0661660
2006/12/01(金) 21:10:14System::Random^ ran = gcnew System::Random();
の部分をループの外で宣言することで問題は解決されました。
ご助言下さった方ありがとうございました。
0662デフォルトの名無しさん
2006/12/02(土) 00:42:25サイトを回っても超初心者か中級、上級用の情報しかない・・・
0663デフォルトの名無しさん
2006/12/02(土) 00:46:39てか、自分で書くプログラムは全部bool、true/falseに統一したいんだけどな・・・
大文字はShift押すのがめんどい。普段C#やってるし・・・
0664デフォルトの名無しさん
2006/12/02(土) 00:54:150665663
2006/12/02(土) 01:04:040666デフォルトの名無しさん
2006/12/02(土) 05:40:00> 大文字はShift押すのがめんどい。
変換→Shift、無変換→Ctrl にキーをリマップすると楽だぞ
0667デフォルトの名無しさん
2006/12/02(土) 07:11:360668デフォルトの名無しさん
2006/12/02(土) 11:54:570669デフォルトの名無しさん
2006/12/02(土) 12:16:450670663
2006/12/02(土) 16:15:08VARIANT_BOOLか・・・今、COMまわりやってるから、なんか見落としてそうだ。。。
0671デフォルトの名無しさん
2006/12/02(土) 17:39:59最近、VisualC++をするようになったんですけど、
なんかAPIというのと、MFCがあるみたいなんですが、
APIを使って勉強です。
ここで、ちょっと困ったことが・・・・ピクチャボックスに簡単な図を書いたらピクチャボックスをはみ出してかかれるんですけど、
これをどうにかしたいんですが、どうしたらいいですか?
0672671
2006/12/02(土) 17:41:09勉強です>勉強中
に訂正ですw
0673デフォルトの名無しさん
2006/12/02(土) 18:05:570674デフォルトの名無しさん
2006/12/02(土) 18:53:200675デフォルトの名無しさん
2006/12/02(土) 18:57:39> これをどうにかしたいんですが、どうしたらいいですか?
適当にやりたいようにやってそのまま死んでくれ
0676デフォルトの名無しさん
2006/12/02(土) 18:59:350677デフォルトの名無しさん
2006/12/02(土) 19:07:47むしろはみ出す方が高度なテクニックが必要
0678デフォルトの名無しさん
2006/12/02(土) 19:11:04本当ですねw
ありました☆
これで一度やってみます!
ありがとーございました〜
0679デフォルトの名無しさん
2006/12/02(土) 19:18:59if (b)のようにしたり、false系との比較は、混在してもコンパイルできてしまうし、問題なく動く。
bool以外でture系との比較はまずい。
0680678です
2006/12/02(土) 19:36:12ココの所で書かれている事でお聞きしたいんですけど、
これってピクチャボックスに書いてるんじゃなくて、ウィンドウに書いてる事になるんじゃないですか?
一般的にピクチャボックスに書くときってどういうコードになるんでしょうか?
0681デフォルトの名無しさん
2006/12/02(土) 19:45:20外から書こうとした時点で微妙に間違っている。
ピクチャボックスをサブクラス化して、
OnPaintをオーバーライドして描画するのが本来のやり方。
0682デフォルトの名無しさん
2006/12/02(土) 19:56:17まず、紙に書いてそれをスキャンするといいよ。
そうするとはみ出さない。
0683デフォルトの名無しさん
2006/12/02(土) 20:19:45一般的な方法を教えてるようなサイトがあれば、教えてもらえませんか?
0684デフォルトの名無しさん
2006/12/02(土) 20:30:060685デフォルトの名無しさん
2006/12/02(土) 21:11:35すみません。勉強不足なんで、勉強しようと思いまし・・・。
教えてもらえないでしょうか?
0686デフォルトの名無しさん
2006/12/02(土) 21:22:08それで勉強しれ
ネットで手に入る知識だけでやろうなんざ10年早い
0687デフォルトの名無しさん
2006/12/02(土) 21:23:32どれも基本的な事だし、文字でしか伝えられない掲示板より
イラストとか写真で解説してあるサイトや本で勉強したほうがいいよ。
0688デフォルトの名無しさん
2006/12/02(土) 21:24:52参考になるサイトや書籍等がありましたら紹介してください。
0689デフォルトの名無しさん
2006/12/02(土) 21:35:480690デフォルトの名無しさん
2006/12/02(土) 21:40:130691デフォルトの名無しさん
2006/12/02(土) 21:40:54スタティックライブラリを作成してます。
いま A、B、C のライブラリを作るとして、B は A を、C は A と B を参照します。
これらをビルドすると以下の警告が出ます。(複数)
warnning LNK4006 "関数A"は A.lib で定義されています。2 つ目以降の定義は無視されます。 : [C のファイル]
たぶん B.lib が実質 A + B になっていて C がリンクをするときに同じ関数が A.lib と B.lib に存在するために
上の警告が出るのかなと考えましたが、どう対処して良いやら分からず悩んでます。
どうすれば警告を消すことが出来るでしょうか。
0692685
2006/12/02(土) 21:44:52本買います!
0693デフォルトの名無しさん
2006/12/02(土) 21:45:58[表示]−[その他のウィンドウ]−[出力]で消えます。
0694デフォルトの名無しさん
2006/12/02(土) 21:55:030695デフォルトの名無しさん
2006/12/02(土) 22:16:110696デフォルトの名無しさん
2006/12/02(土) 22:18:010697デフォルトの名無しさん
2006/12/02(土) 22:20:26ありますよ
つ CPad
0698デフォルトの名無しさん
2006/12/02(土) 22:27:030699勉強中
2006/12/03(日) 08:42:19エディターの1行目が変になりました。
0700デフォルトの名無しさん
2006/12/03(日) 09:20:430701デフォルトの名無しさん
2006/12/03(日) 12:03:11関数の「定義位置を表示」からその定義に飛んだ後、
元の場所に戻りたいのですが、どうすればいいのでしょうか?
違うファイルならCtrl+Tabで戻れますが、
同じファイル内だった場合は、ちょっと参照したいだけなのにすぐに戻れなくなり、
いちいち元の場所を検索して戻っています。
どうにかならないでしょうか?
0702691
2006/12/03(日) 12:18:32あっはっはっはっは。
いや、私は視界に入れてないんでいいんですけれど。w
>>694
確かに警告の内容からしても無視していいような気もしているのですが。
消せる物なら消したいな、と思ってまして。ダッテ アレガ 200クライ デルンダモン
お二方とも、ありがとうでした。
0703デフォルトの名無しさん
2006/12/03(日) 12:28:590704初心者@質問
2006/12/03(日) 17:52:58たまに下のような警告が出ます。
『'localtime' が古い形式として宣言』の“形式”って何でしょうか?
//*:;;;;;:*★*:;;;;;:*★*:;;;;;:*★*:;;;;;:*★*:;;;;;:*
d:\chap14\gendate\gendate\date.cpp(13) : warning C4996: 'localtime' が古い形式として宣言されました。
c:\program files\microsoft visual studio 8\vc\include\time.inl(114) : 'localtime' の宣言を確認してください。
//*:;;;;;:*★*:;;;;;:*★*:;;;;;:*★*:;;;;;:*★*:;;;;;:*
0705デフォルトの名無しさん
2006/12/03(日) 18:09:01普段は出ない?
0707デフォルトの名無しさん
2006/12/03(日) 18:19:47ttp://www.google.co.jp/hws/search?hl=ja&q=%E5%8F%A4%E3%81%84%E5%BD%A2%E5%BC%8F%E3%81%A8%E3%81%97%E3%81%A6%E5%AE%A3%E8%A8%80%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F&client=fenrir&adsafe=off&safe=off&lr=lang_ja
0708デフォルトの名無しさん
2006/12/03(日) 18:51:390709初心者@質問
2006/12/03(日) 19:08:39ありがとうございました。
「#pragma warningを使う」方法と
「_CRT_SECURE_NO_DEPRECATEを定義する」方法で
警告がでなくなることを確認できました。
0710デフォルトの名無しさん
2006/12/04(月) 03:30:460712711
2006/12/04(月) 11:18:01のようにはみ出した部分は::SelectClipRgn()を使ってクリッピングしないとダメなんでしょうか?
失礼しました。
0713デフォルトの名無しさん
2006/12/04(月) 11:27:37クリッピングしなくてもはみ出ない。
君のコードが間違ってるだけ。
0714デフォルトの名無しさん
2006/12/04(月) 11:29:22やっぱりそうなんですね。
ありがとうございました。
0716デフォルトの名無しさん
2006/12/04(月) 12:46:330717715
2006/12/04(月) 13:03:05CWnd *myPICT = GetDlgItem(IDC_PICT);
CClientDC myCLDC(myPICT);
CPen myPen(PS_SOLID, 1, RGB(0,0,255));
CPen *oldPen = myCLDC.SelectObject(&myPen);
CRect myRECT;
myPICT->GetClientRect(myRECT);
myCLDC.FillSolidRect(myRECT, RGB(255,255,255));
myCLDC.MoveTo(10, 10);
myCLDC.LineTo(300, 10);
myCLDC.LineTo(300, 300);
myCLDC.LineTo(10, 300);
myCLDC.LineTo(10, 10);
myCLDC.SelectObject(oldPen);
というふうに書きました。
0718デフォルトの名無しさん
2006/12/04(月) 13:34:000719デフォルトの名無しさん
2006/12/04(月) 14:09:17つまり、自分が書いたコードでも本来ならはみ出すことはないって事でしょうか?
0720デフォルトの名無しさん
2006/12/04(月) 14:11:44GetDCはそれに影響される。
>ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_4esj.asp
>The GetDC function retrieves a common, class, or private DC depending on the class style of the specified window.
ということだと思う。
0721ザライバ
2006/12/04(月) 14:19:35関数に4個の引数を指定できません。というエラーが出ます。誰か助けてください。
void main (){
divd2(left,right,&root,&sw);
何かいろいろ
}
void divd2(left,right,sol,sw)
float left,right,*sol
{
何かいろいろ
}
0722デフォルトの名無しさん
2006/12/04(月) 14:26:03ちょっと意味が理解できてないような気がしますが、
つまり、ウィンドウのクリッピング領域をピクチャボックスのクリッピング領域にセットすることになるから、
はみ出してしまうって事になるんでしょうか?
0723デフォルトの名無しさん
2006/12/04(月) 14:38:47違う。
ピクチャーコントロールのウィンドウクラスにはCS_PARENTDCが付いている。
CS_PARENTDCというのは↓
>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windowclasses/aboutwindow.asp
>Sets the clipping rectangle of the child window to that of the parent window so that the child can draw on the parent.
GetDCはそれの影響で、ピクチャーコントロールのクライアント矩形ではなく、親ダイアログのクライアント矩形でクリッピングされる。
だからピクチャーコントロールの外にも描ける。
GetWindowDCはそれに影響されず、ピクチャーコントロールのウィンドウ矩形でクリッピングされるからはみ出ない。
0724デフォルトの名無しさん
2006/12/04(月) 14:54:17そうでした。ありがとうございます。
てことは、同じような図を描くことになると、
723さんなら、GetWindowDCを使って描かれるって事ですか?
違ってたら、簡略でいいのでコードを書いていただいてもいいでしょうか?
これが最後なのでお願いします。
0725デフォルトの名無しさん
2006/12/04(月) 14:58:15ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwindowdc.asp
0726デフォルトの名無しさん
2006/12/04(月) 18:38:29あるコントロール上でマウスカーソルが○秒以上停止
していた時にイベントを発生させたいのですが
どのように記述したらよいのでしょうか?
環境:VC++2005 MFC
0727デフォルトの名無しさん
2006/12/04(月) 18:49:290728デフォルトの名無しさん
2006/12/04(月) 18:53:19自分で判断すると言うことは
マウスカーソルの停止時間を取得して
判定するのでしょうか?
マウスカーソルの停止時間って
取得できるんでしょうか?
0729デフォルトの名無しさん
2006/12/04(月) 18:57:38マウスポインタはウィンドウ上にあるが、動いてない場合は来ない
おk?
0730デフォルトの名無しさん
2006/12/04(月) 19:04:53なるほど・・・。
つまりWM_MOUSEMOVEメッセージが
○秒以上来なかったらって判断すればいいわけですね。
ありがとうございます。
0731デフォルトの名無しさん
2006/12/04(月) 19:15:06ありがとうございました!
おかげで、目的の物ができました☆
ただ、くぼみと境界線を選択してたら、
右上から右下に、
左下から右下に、若干のズレが生じました。
これってくぼみの部分が影響してるからなんでしょうか?
0732デフォルトの名無しさん
2006/12/04(月) 19:17:560733デフォルトの名無しさん
2006/12/04(月) 19:41:52そうですねw
ここまでお付き合いいただき、ありがとうございました!
0734デフォルトの名無しさん
2006/12/04(月) 19:55:24TrackMouseEvent(または_TrackMouseEvent)とWM_MOUSEHOVER
0735デフォルトの名無しさん
2006/12/04(月) 19:56:480736734
2006/12/04(月) 20:06:31TrackMouseEvent()でウィンドウハンドルと時間を設定しておけば
コントロール上で止まってたらWM_MOUSEHOVERくるけど。
なんか間違ってること書いてたら訂正するが・・・
0737デフォルトの名無しさん
2006/12/04(月) 20:39:38止まって無くても、ウィンドウ内なら動きまくってても来るよ。
0738734
2006/12/04(月) 20:54:46確認しました。
やはりTrackMouseEvent()+WM_MOUSEHOVERでいけるけどなぁ。
環境依存な部分はアンダーバー付きの_TrackMouseEvent()を使っとけばほぼ吸収できるし。
>>737
dwHoverTimeで指定した時間止まってたらWM_MOUSEHOVERが来ましたが、
動いてるときはWM_MOUSEMOVEでしたよ。
0740デフォルトの名無しさん
2006/12/04(月) 23:42:22CFormViewにMSGridをはりつける?
CViewからガリガリ自前で書いていく?
0741デフォルトの名無しさん
2006/12/04(月) 23:55:15SetWindowLong(hWnd,GWL_WNDPROC,(LONG)pWndProc);
↑こんな感じでポインタを設定しようとすると
「ポインタをXXX(元の型)からLONGへ切り詰めます」
と警告されます。
逆に元の型のポインタ変数にGetWindowLong()でもってポインタを取得しようとすると
「LONGからより大きいサイズのXXX(元の型)へ変換します」と表示されます。
ポインタも32Bit値だから切り詰められるって事はないと思うのですが、具体的に何が
問題なのでしょうか?
0742741
2006/12/04(月) 23:57:47自己解決しますた
VC8だとデフォで/Wp64ついてんのね
0743質問
2006/12/05(火) 13:50:20可能だということはわかるんですが、
char型からstring型への変換ってどうやってやるんですか?
0744デフォルトの名無しさん
2006/12/05(火) 14:01:01標準C++の質問ならC++スレへ行った方がいいよ
0745質問
2006/12/05(火) 14:13:46こんな感じですか?
char char_ABC = "abc";
string str_ABC = charABC;
>標準C++の質問ならC++スレへ行った方がいいよ
こういうところですか?
C++なら俺に聞け(入門篇)
http://pc8.2ch.net/test/read.cgi/tech/1160897843/l50
0746デフォルトの名無しさん
2006/12/05(火) 14:16:01それぐらい自分で考えろよ
0747質問
2006/12/05(火) 14:18:540748デフォルトの名無しさん
2006/12/05(火) 16:26:500749デフォルトの名無しさん
2006/12/05(火) 18:03:06using namespace std;
int main()
{
cout << "Hello!" << endl;
}
Visual C++ 2005 Express Edition を使って↑のC++のプログラムをコンパイルしようとしたのですが
↓のようにエラーが出てしまい対処法がわからず困っています。
どのようにすればいいのでしょうか?
------ ビルド開始: プロジェクト: cppテスト, 構成: Debug Win32 ------
コンパイルしています...
cppテスト.cpp
(省略)cppテスト.cpp(9) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。
'#include "stdafx.h"' をソースに追加しましたか?
ビルドログは "(省略)" に保存されました。
cppテスト - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
0750デフォルトの名無しさん
2006/12/05(火) 18:08:42あるいは、プロジェクトを作るときに、空のプロジェクトのチェックを入れておく。
0752デフォルトの名無しさん
2006/12/05(火) 23:11:57その子フレームのタイトルが追加されますが、その子フレームのタイトルを変更する
以外にメニューの表示名を変更することってできますか?
0753デフォルトの名無しさん
2006/12/05(火) 23:25:070754デフォルトの名無しさん
2006/12/05(火) 23:25:310755デフォルトの名無しさん
2006/12/06(水) 04:10:050756デフォルトの名無しさん
2006/12/06(水) 07:32:06そんなアナタに、WM_MDISETMENU
0757デフォルトの名無しさん
2006/12/06(水) 10:40:23行と列を入れ替えればいいと思うよ
0758デフォルトの名無しさん
2006/12/06(水) 11:24:26IQ低いと3×3行列の転置行列さえ途方にくれる。
0759デフォルトの名無しさん
2006/12/06(水) 11:33:09i | |
| _____人__/
i_,,, r´_ _〉
((テヽ!´ _ _ /_ _j
ゝ_i  ̄ |  ̄ i
ゝ ヽ (_、__j_)ヽ ノ
, イ ヽ、 ii /
/ \ ヽ =ニ= /
/ \ `ーj---‐i´i\
\/ !j \
_ ,,,,_ /\ \ ,c、.c、
___/´ 、、ヽ/i :|三三三三三三三\.ヽ.ヽ二l
// \ \/ .i / ,.-、-、| |: |
| | 、\ \ \! |:| !
| ヽ_,r.'\rj)、rj) !| |
\___/ / | /
/ / | |
0760デフォルトの名無しさん
2006/12/07(木) 21:32:47ttp://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N21
このチャットのサンプルをコピペしてもコンパイルできません
環境は
エディタ =VS2005 standard edition VC++
OS = XPsp2
で
警告が1つで
「ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください」
ってやつと
エラーメッセージは3つありますがどれも同じ
「指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。」
ってやつです
lstrlen とか lstrcpy っていう関数を使うところでエラーになってるみたいなんですが
どのように対策すればいいかご教授お願いします
0761デフォルトの名無しさん
2006/12/07(木) 22:11:38エラーが出た行数くらい書いてくれよ
0762デフォルトの名無しさん
2006/12/07(木) 22:14:03プロジェクトのプロパティを開いて構成プロパティの全般にある文字セットをUnicodeからマルチバイトに変更。
0763デフォルトの名無しさん
2006/12/07(木) 22:47:32すいません、ちょこっと手直し入れてるんで行数は当てにならないんですよね
えーと、
StrLength = lstrlen( Message ) + 1 ;
lstrcpy( ScreenString[ i - 1 ], ScreenString[i]);
lstrcpy( ScreenString[StringY], AddString );
この関数のところでエラーが出てるみたいです
基本的にこの関数のところでは手直ししていません
>>762
こんなエラーがでました
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_execute_transformation が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jcopy_markers_execute が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_adjust_parameters が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_request_workspace が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jcopy_markers_setup が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _write_stdout が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _read_stdin が関数 _main で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _read_scan_script が関数 _parse_switches で参照されました。
libjpeg.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _keymatch が関数 _parse_switches で参照されました。
0764デフォルトの名無しさん
2006/12/08(金) 00:12:150765デフォルトの名無しさん
2006/12/08(金) 00:39:41リンクするライブラリが足りないんじゃね。
0766デフォルトの名無しさん
2006/12/08(金) 01:19:49過去に作ったC言語のソースをどうやって利用するのか教えてください。
ソースは開けるんですけど、実行することができないです。
0767デフォルトの名無しさん
2006/12/08(金) 09:53:35勉強もしないで適当にやってみたけど、できないから掲示板で質問
そんなやつに教えてやるだけ無駄
0768デフォルトの名無しさん
2006/12/08(金) 11:06:310769デフォルトの名無しさん
2006/12/08(金) 11:33:01<windows.h>をインクルードしろ。lstrlen/lstrcpyなんかはその中で宣言されている。
0770デフォルトの名無しさん
2006/12/08(金) 12:33:100771デフォルトの名無しさん
2006/12/08(金) 14:44:11馬鹿にはやっぱり無理のようだな
0772デフォルトの名無しさん
2006/12/08(金) 16:29:56プロセスのメモリ使用量ってどうやって調べるのでしょうか
なんか良い本とかありますか?
0773デフォルトの名無しさん
2006/12/08(金) 16:38:52http://store.nikkeibp.co.jp/item/main/148910047380.html
0774デフォルトの名無しさん
2006/12/08(金) 16:46:40DXをやんわりと包むライブラリがあるだけで作れるゲームなんて
無くても作れるゲームだけだし
0775デフォルトの名無しさん
2006/12/08(金) 19:46:11よいのですが、逆は関数がみあたりません。
なんかよい方法はないですか?
vc++6.0
0776デフォルトの名無しさん
2006/12/08(金) 19:56:18だめなら、_strtoui64、sscanfの書式%I64uなんかがVC 6でも使えると思う。
0777デフォルトの名無しさん
2006/12/09(土) 01:23:49ソフトはVisual C++ 2005 Express Edition
http://www14.atwiki.jp/garyohosu/pages/5.html
このサイトのサンプルでは成功したんですが・・・
http://www.stat.phys.kyushu-u.ac.jp/~ryokawa/cbegin2_3/html4/cbegin_c1_s2.html#s_hello_world
このサイトの一番最初のコードを入力してもビルドメニューに実行が現れません(F5+Ctrlでも不可)
cppファイルを実行させるにはどうすればいいんでしょうか・・・
0778デフォルトの名無しさん
2006/12/09(土) 01:33:090779デフォルトの名無しさん
2006/12/09(土) 01:40:01実行しないでどうやって表示させるんですか?
0780デフォルトの名無しさん
2006/12/09(土) 01:45:410781デフォルトの名無しさん
2006/12/09(土) 01:57:58関数やソフトではなく使い方が知りたいんですが・・・
0782デフォルトの名無しさん
2006/12/09(土) 02:33:40次スレのテンプレには
| 三′ .._ _,,.. i三 |
ト、ニ| <でiンヽ ;'i"ィでiン |三.| MSDNも読まずに質問とな!
', iヽ! 、 ‐' / !、 ーシ |シ,イ
を追加すべきだな。
0783デフォルトの名無しさん
2006/12/09(土) 03:05:14読んだけど俺の問題の解決になるようなことは何一つ書いてない
もうええわ
0784デフォルトの名無しさん
2006/12/09(土) 08:27:03どうやったらそんな状況になるのか理解不能
掲示板だから何やったか見れないのが残念
0785デフォルトの名無しさん
2006/12/09(土) 09:39:21エスパーになってやろう。
今のVC++はプロジェクト作らないとビルドできないぞ。
下のページではプロジェクトを作らなくてもビルドできた古いバージョンを想定して書かれているようだ。
0786デフォルトの名無しさん
2006/12/09(土) 12:14:25Basicだとpicture.Widthやpicture.Heightで変更ができるんですが、VC++にはないようで・・・。
0787デフォルトの名無しさん
2006/12/09(土) 12:24:24ウインドウサイズ変更で調べればいい
0788デフォルトの名無しさん
2006/12/09(土) 12:28:10でぐぐったら1発でみつかるな
0789デフォルトの名無しさん
2006/12/09(土) 12:40:59ありがとうございます。
そうだったんですか。
ピクチャボックス サイズ 変更って調べたときは出なかったのに・・・コントロールなんですね(笑
1発でした!
0790デフォルトの名無しさん
2006/12/10(日) 03:47:20listBoxにアイテムの追加等を行うにはどうしたらいいでしょうか?
0791デフォルトの名無しさん
2006/12/10(日) 06:41:090792デフォルトの名無しさん
2006/12/11(月) 11:45:54サイズ、位置、フォントが、プロパティシートに割り当てて
表示したときに変わってしまいます。リソースで設定した
状態を維持したまま表示するにはどうしたらよいのでしょうか?
0793デフォルトの名無しさん
2006/12/11(月) 12:24:270794デフォルトの名無しさん
2006/12/11(月) 13:16:51ダイアログそのものの設定です。
0795デフォルトの名無しさん
2006/12/12(火) 21:35:50実行するとメインフレーム+チャイルドフレームが表示されますが、
そのときメインフレームのメニューである[ウィンドウ]メニューに
チャイルドフレームのタイトルが自動で追加されています。
このメニューを消したいんですがどうしたらよいでしょうか?
0796デフォルトの名無しさん
2006/12/12(火) 21:39:17自分でMFCのソースも読めないなら贅沢言うな
0797デフォルトの名無しさん
2006/12/12(火) 21:46:45とても困ったことになったので、どうかお知恵を貸してください
状況は以下のようなものです
CWndクラスを継承して作成されたコントロール(標準ではなく)があります
そしてそのヘッダファイルとリブファイル、DLLファイルだけが提供されています
このコントロールは自分でメンバ変数として定義してCreateすることで使うことができます
しかし、そのコントロール上でマウスがダウン/アップしたなどのメッセージを受け取る
方法が分からなくてとても困っているという状況です
コントロール関連の大まかな処理の流れとしては、
ヘッダ内でメンバ変数として定義
↓
OnInitDialog内で生成&初期化&表示
↓
メッセージ受け取りで処理
これだけなのですが、この一番下の処理だけがどうしてもできません
普通のコントロールであればプロパティウィンドウを使ってメッセージ処理の定義?が
できるのですが、このコントロールではできません
メッセージマップと書いてある辺りが怪しいとは思うのですが、リソースエディタでダイアログにペタペタ貼って
メッセージ処理を追加した時に自動生成されるコードと同じようにヘッダとCPPに書いてみても駄目でした
周りに聞けるような人がいないので途方にくれております
かといって、これを使わないというのは無理です(とても自作や他で代用できるようなシロモノではないので)
何かアドヴァイスまたは参考になるようなサイトを教えて頂けませんでしょうか・・・
※なお、諸事情によりそのコントロールの開発者に直接聞くことはできません
0798デフォルトの名無しさん
2006/12/12(火) 22:55:57タブと全角スペース だけ 表示したいのですが。
無理ですか?
0799デフォルトの名無しさん
2006/12/13(水) 02:08:46CWnd::SubclassWindow を呼びつつ、
プロパティウィンドウでメッセージ選んでけばOKだと思う。
>>798
WhiteSpace でも始めるの?
0800デフォルトの名無しさん
2006/12/13(水) 06:45:400801デフォルトの名無しさん
2006/12/13(水) 09:37:45いえ、普通のエディターなら全角とタブと改行とか細かく表示設定できるのに、
なんでVCのエディターは出来ないのかなぁ〜〜と。
0802デフォルトの名無しさん
2006/12/13(水) 09:51:090803デフォルトの名無しさん
2006/12/13(水) 13:01:350804デフォルトの名無しさん
2006/12/13(水) 22:45:32VC++でWindowsフォームアプリケーションからゲームを作ろうと思っています
フォームにピクチャボックスを設置する時にいらない部分は透過させたいのですが
画像に透明色を塗ってもピクチャボックスの場合は透過しません
ラベルとかボタンの場合は透過するんですが、どのような処理を行えばいいのでしょうか
0805デフォルトの名無しさん
2006/12/13(水) 22:56:44つDirectX
0806デフォルトの名無しさん
2006/12/13(水) 23:05:30やっぱりピクチャボックスの透明色を透過させるのは無理ですかね?
0807デフォルトの名無しさん
2006/12/14(木) 00:47:31-LayeredWindow
-DIBで自前で頑張る
0808デフォルトの名無しさん
2006/12/14(木) 01:11:55設定したその色でラベルやボタンのフォント、もしくは背景色にすると透過するんですよ
LayeredWindowはMeでも大丈夫ですかね?
DIBは今の自分の技量じゃとてもじゃないけど実装できそうにないです
素直にDirectXかなぁ
0809デフォルトの名無しさん
2006/12/14(木) 01:30:48Bitmap.MakeTransparentとかで透過情報を持たせれば
描画時に勝手に透過処理されるんじゃないの?
0810デフォルトの名無しさん
2006/12/14(木) 02:11:49Bitmap.MakeTransparentでなんとかできそうです
ちょっと使い方わかんないけど、試行錯誤してみます
0811デフォルトの名無しさん
2006/12/14(木) 13:22:47すごい馬鹿な質問ですが例えば写真などを表示することはできないのでしょうか?
256色以内であればペイントなどで作成し表示できるのでしょうか?超初心者なのでぜひ教えてください。。
0812デフォルトの名無しさん
2006/12/14(木) 13:33:200813デフォルトの名無しさん
2006/12/14(木) 18:32:250814デフォルトの名無しさん
2006/12/14(木) 23:18:23CFormViewで開発をしています。
ウィンドウをドラッグして動かしたときに、アプリケーションの左上の(x,y)座標
を取得したいのですが、うまくいきません。
WM_MOVINGとWM_MOVEを試してみたのですが、WM_MOVEには起動直後、
WM_MOVINGに至ってはウィンドウを動かしても一度も呼ばれませんでした。
何を使えば(x,y)を取得できるんでしょうか。
0815デフォルトの名無しさん
2006/12/14(木) 23:39:170816デフォルトの名無しさん
2006/12/14(木) 23:41:11SDIならCFrameWndで取得しないと意味ないよ。
0817デフォルトの名無しさん
2006/12/15(金) 00:06:16ありがとうございます、無事取得できるようになりました。
このOnMove(int x, int y)の
x,yは何をさしているんでしょうか。。。
0818デフォルトの名無しさん
2006/12/15(金) 00:31:430819デフォルトの名無しさん
2006/12/15(金) 00:34:430820デフォルトの名無しさん
2006/12/15(金) 13:42:050821デフォルトの名無しさん
2006/12/15(金) 15:05:41面白くないよ?
0822デフォルトの名無しさん
2006/12/15(金) 17:11:050823デフォルトの名無しさん
2006/12/15(金) 18:01:09親ダイアログ(モーダル)からボタンなどのイベントでモードレスの子ダイアログを
動的に作成し、そのポインタを配列に保持しています。
ある子ダイアログが終了(閉じられた)したら、親に知らせたいんですけど
どうしたら子ダイアログが閉じたというのが分かるのでしょうか?
0824デフォルトの名無しさん
2006/12/15(金) 19:44:45イベントとかを使う
0825デフォルトの名無しさん
2006/12/15(金) 19:49:030826デフォルトの名無しさん
2006/12/15(金) 19:49:530828デフォルトの名無しさん
2006/12/15(金) 20:14:28VisualC++2005 Express Editionです。
#include <string>
using namespace std;
String adress_str;
に対して下記のようにエラーがです。
: error C2065: 'String' : 定義されていない識別子です。
: error C2146: 構文エラー : ';' が、識別子 'adress_str' の前に必要です。
: error C2065: 'adress_str' : 定義されていない識別子です。
string宣言に対してエラーが出ているのだと思うのですが標準ライブラリでサポート
されているハズなので#include <string>以外は必要ないと思うのですが・・・
(他には<stdio.h>と <tchar.h>をstdafx.hでincludeしています)
0829デフォルトの名無しさん
2006/12/15(金) 20:39:39それとも、.NET FrameworkのSystem::Stringを使いたければ、#using <mscorlib.dll>
0831デフォルトの名無しさん
2006/12/15(金) 21:42:33ある特定のプロジェクトだけそうなります。
数年前にも一度起きてかなり悩まされた記憶があります。
原因は何でしょうか?
0832デフォルトの名無しさん
2006/12/15(金) 21:45:49わかってるのですが、
対して大きなプロジェクトでもないのにフリーズする原因ってなんでしょうか?
0833デフォルトの名無しさん
2006/12/15(金) 21:58:46では、そのプロジェクトを丸ごと圧縮しUPしてください。検証します。
0834デフォルトの名無しさん
2006/12/16(土) 01:41:34htmlをEncoding::GetEncoding(51932)で読み込んだ後に、Split()で分解しています。
分解した後の文字列に「1漢」のように任意の桁数の数字と漢字一文字からなる文字列
があるのですが、これに対してremoveやinsertなどさまざまな方法で漢字の部分を削除
しようとしても操作内容が全く反映されていません。
data->Remove(0,1)などの操作をしても結果が全く変わらないのですがどうしてなのでしょうか?
0835デフォルトの名無しさん
2006/12/16(土) 02:02:37Cxxx myDL;
myDL.DoModal();
で新しいダイアログを表示したいのですが、
新しく表示するダイアログの起動位置はどうやって設定すればよいのでしょうか。
0836デフォルトの名無しさん
2006/12/16(土) 02:34:18既に、VS6.0やVC++6.0がインストールされている環境に
VS.NETやVC++.NETをインストールして、6.0と.NETを併用する事って可能でしょうか?
0837デフォルトの名無しさん
2006/12/16(土) 02:47:140838デフォルトの名無しさん
2006/12/16(土) 03:16:27そうですか。
同時にインストールすると、動作が不安定になったりとかの
弊害とかはまったく無いですか?
0839デフォルトの名無しさん
2006/12/16(土) 03:32:11.NET?
もしそうなら、それ相当のスレに行った方が良いかも。
>>835
OnInitDialog で SetWindowPos
0840デフォルトの名無しさん
2006/12/16(土) 04:50:310841デフォルトの名無しさん
2006/12/16(土) 06:35:03関連付けが混乱する弊害は(勿論)ある。
0842デフォルトの名無しさん
2006/12/16(土) 10:23:49System::Stringはimmutable、一度作られた文字列の内容を書き換えることはできない。
data->Remove(0, 1)とやってもdataの中身はそのままで、
Removeした文字列が新しく作られて戻り値として返される。
data = data->Remove(0, 1);なんかはどうだ。
0843デフォルトの名無しさん
2006/12/16(土) 10:44:52ご助言いただいた方法でうまくいきました。
大変助かりましたありがとうございます。
0844デフォルトの名無しさん
2006/12/16(土) 10:58:19できないでしょうか?
標準ライブラリのstringを使って生成したWebアドレスを使って
下の文を使いたいのですが型があわないのでエラーが出て困っています。
wrGETURL = WebRequest::Create(sURL); // sURLはString形式
よろしくお願いします。
0845デフォルトの名無しさん
2006/12/16(土) 11:15:38gcnew System::String(s.data(), 0, static_cast<int>(s.size()));
0846デフォルトの名無しさん
2006/12/16(土) 14:49:14ああ、それはそうですよね。
とりあえずインストールしてみようかな。
0847デフォルトの名無しさん
2006/12/16(土) 16:13:58スタティックライブラリを作ってる。
メインのプロジェクトでlibファイルを作るんだけど、
そのライブラリを同じソリューションのほかのプロジェクトで使いたい。
・いちいちlibファイルをコピーする
・debugフォルダとかにパス(ライブラリの)を通す
のほかにやる方法はない?
あとメインプロジェクトのヘッダファイルも使いたい。
0848デフォルトの名無しさん
2006/12/16(土) 16:28:49そうすればリンカの追加の依存ファイルのところを$(OutDir)/HogeHoge.libと共通して入力できるはず。
0849デフォルトの名無しさん
2006/12/16(土) 16:34:30トンクス!
0851デフォルトの名無しさん
2006/12/18(月) 00:33:21という作業を繰り返し行おうとしたんですけど、
1つ目の連続線を描いた後にMoveToExで座標を変えた場合、なぜか、前の連続線の終点からずっと線が続いており、
全ての連続線が1本の線となってしまいました。
これはどうしてなんでしょうか?
int a=0;
for(int i = 0; i < 1000; i++){
if(temp[i] != a){ a = temp; MoveToEx(hDC, x[i], y[i], 0);}
else{
LineTo(hDC, x[i], y[i]);
}
というプログラムです。tempで連続線の種類を判定します。
種類が違っていた場合は座標を移動させて、次の連続線までLineToで線を描き続きます。あとはそれの繰り返しです。
0852デフォルトの名無しさん
2006/12/18(月) 00:35:40>これはどうしてなんでしょうか?
いいか、一つ良いこと教えてやる
プログラムは書いた(記述した)ようにしか動かない
つまりはそういうことだ
0853デフォルトの名無しさん
2006/12/18(月) 03:28:07それでは、私がしようとしてる事に対して、このプログラムは間違ってるって事ですよね。
どうしたらいいんでしょうか?
0854デフォルトの名無しさん
2006/12/18(月) 06:07:10コードを見直せ。
上限が 1000 だと動作確認し辛いだろうから、
10 ぐらいとか、規模を小さくして希望どおりに動いてるか確認するべし。
0855デフォルトの名無しさん
2006/12/18(月) 08:51:36やってみます
0856デフォルトの名無しさん
2006/12/18(月) 17:46:35リストコントロールをレポート形式で表示しています。
(2列×10行、チェックボックス付き)
ボタンのクリックイベントで新規行の挿入と同時に
選択状態にしたいのですが特に設定するような関数は
見あたりませんでした。どうやって設定すればよいのでしょうか?
0857デフォルトの名無しさん
2006/12/18(月) 18:51:380858ちょろねずみ
2006/12/19(火) 14:47:27VC++ 6.0 で作成したレギュラーDLLをVB 6.0 で作成したプログラムから呼ぶと、
「ファイルが見つかりません: test.dll」となります。このDLLとVBプログラム
は、同じファルダにあります。
0859名無し
2006/12/19(火) 15:12:46[2] 問題文(含コード&リンク):親プロセスは1+2+・・・+60の計算を行う。親はその結果を子プロセスに伝え、さらには子はその結果を孫にプロセスに伝える
親から子、子から孫に伝えられる結果をプロセス間通信で伝える為のプログラムを作成せよ
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: Visual Studio 2003
[3.3] 言語: C
[4] 期限: 今すぐにでも
[5]特になし
0860デフォルトの名無しさん
2006/12/19(火) 15:43:38が顔文字に見えて仕方がない今日この頃。
0861デフォルトの名無しさん
2006/12/19(火) 18:26:50作り方が分かりません。
ある時間が来たら、別のプログラムを実行したり、
時間を記録するようなプログラムを作りたいのです。
教えて下さい。。
0862デフォルトの名無しさん
2006/12/19(火) 19:50:19まずはWindowsアプリの作り方を勉強してください
0863デフォルトの名無しさん
2006/12/19(火) 21:27:27これって配列をクラスのprivateに設定できないってこと?
0864デフォルトの名無しさん
2006/12/19(火) 21:41:47win32のwindowsアプリケーションが選択できません。
アプリケーションの種類の欄で選択できるのは、コンソールアプリケーションだけなのですが
windows.hをインクルードで着ませんし。
どなたかご存知の方教えてください。
0865デフォルトの名無しさん
2006/12/19(火) 21:51:350866デフォルトの名無しさん
2006/12/19(火) 21:53:42PlatformSDKインストールしてないと、そうなると思う。
0867デフォルトの名無しさん
2006/12/19(火) 22:00:13MSDNが無料でしかも日本語で読める時代なのに…
0868デフォルトの名無しさん
2006/12/19(火) 22:13:01ありがとうございます。
DLしてきます。
0869デフォルトの名無しさん
2006/12/19(火) 23:05:56環境:WindowsXPSP2,VisualC++2005 Express Edition
下記のページのサンプルコードを書き換えて日本語(EUC)のHPからデータを
吸い上げるプログラムを書いています。
ttp://support.microsoft.com/default.aspx/kb/815657/ja
StringはUnicodeで宣言されているため、本来取得したい日本語列が
化けて抜けてしまい(おそらくエンコードでエラーとなり消されている)
困っています。
sLine = objReader->ReadLine(); (sLineはString^ 型です)
この部分がWebデータの取得部分のハズですので取得時に
文字コードの変換ができればうれしいのですが、
解決策はありますでしょうか?
よろしくお願いします。
0870デフォルトの名無しさん
2006/12/19(火) 23:45:15.Netはスレ違い。
0871デフォルトの名無しさん
2006/12/20(水) 02:10:42ぐぐれよ。
MSDN ぐらい嫁よ。
0872ちょろねずみ
2006/12/20(水) 19:00:35VB6のプログラムからVC++6で作成したMFCレギュラーDLLを呼ぶと、
「ファイルが見つかりません」エラーになります。
VBのプログラムファイルとこのDLLは、同じ場所にあります。
1. VB側:
(1) サンプルコード
Public Declare Function GetNezumi Lib "choro.dll" () As Long
Sub test()
Dim lngRet As String
lngRet = GetNezumi()
End Sub
2. VC側:
(1)サンプルコード
extern "C" __declspec( dllexport) int WINAPI GetNezumi()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// 通常関数の本体はこの位置にあります
return TRUE;
}
(2)プロジェクト名:choro
(3)DLLの種類: MFCレギュラーDLL
3. VBでのエラーメッセージの内容
実行時エラー'53':
ファイルが見つかりません: choro.dll
以上、よろしくお願いします。
0873デフォルトの名無しさん
2006/12/20(水) 19:27:57VC2005で作成しています。(C++では作成できました。)
バイナリ→アスキーが出来ません。
問題点を指摘いただけませんでしょうか?
CStdioFile fin;
CString text,filename,temp;
edit1.GetWindowText(filename);
if (filename == "") return;
if(!fin.Open(filename, CFile::modeRead | CFile::typeBinary)) {return;}
text = "";
while (fin.ReadString(temp) !=NULL){
text = text + temp + "\r\n";
}
edit2.SetWindowText(text);
fin.Close();
0874デフォルトの名無しさん
2006/12/20(水) 19:29:20それだとシステムフォルダにdllを探しに行くと思うよ。
0875デフォルトの名無しさん
2006/12/20(水) 19:37:02頭大丈夫か?
0876デフォルトの名無しさん
2006/12/20(水) 19:48:00勉強不足なのは判ってるんですがorz
データ解析を全て手で計算してきた弊害ですね。
生まれてくる時代間違えました。すいません。
0877デフォルトの名無しさん
2006/12/21(木) 05:05:33> C++では作成できました
って事なら、動くものはコピペ(とちょっとした変更)で出来るかと思うぞ。
ファイル入出力は、fstream / FILE もつかえる。
MFC 使っているなら CString::Format を参考にするのも良いかもしれない。
0878デフォルトの名無しさん
2006/12/22(金) 04:32:37_T()マクロの存在教えんHELP氏ね!!
0879デフォルトの名無しさん
2006/12/22(金) 16:43:500880デフォルトの名無しさん
2006/12/23(土) 00:01:05APIでいうRemoveDirectoryのような関数はないのでしょうか
0881デフォルトの名無しさん
2006/12/23(土) 00:42:10CFile::Remove()じゃディレクトリの削除は出来ないので、無いのでは?
APIじゃダメなの?
0882デフォルトの名無しさん
2006/12/23(土) 08:15:17プリプロセッサの定義や、拡張命令セットを設定したいのですが、
どのようにすればいいでしょうか?
0883デフォルトの名無しさん
2006/12/23(土) 08:48:010884デフォルトの名無しさん
2006/12/23(土) 13:07:30馬鹿じゃなかったらどうやるの?
0885デフォルトの名無しさん
2006/12/23(土) 13:17:560886デフォルトの名無しさん
2006/12/23(土) 17:51:48昔は
std:vector<int> v;
v[5] = 0;
みたいにすぐに代入できてたんですが、新しくVC2005 買ってみたらエラーでやんのw
宣言だけでは実際にvが確保(インスタンス生成?)されてないみたいなんですけど
この場合どうやって書くのがいいんでしょうか?
コンストラクタで配列の個数を指定するか、一度push_backなりしてやれば、実際に生成されるみたいなんですが
(reserveでは駄目でした)
ダミーをpush_backするのも書き方として汚いし、どうかけばいいの?
0887デフォルトの名無しさん
2006/12/23(土) 18:26:00画像処理なのですが、memcpyが含まれるループを回すとき、扱う容量が大きいとときどきフリーズしてしまうのですが、
memcpyはコピーする容量が大きいと、コピーが完了しないうちに次の命令に移ったりしますか?
すぐ次の行にはループの回数を表示するprint文があるだけで、WaitForSingleObjectなどは使っていません。
0888デフォルトの名無しさん
2006/12/23(土) 18:27:07vectorのメンバ関数くらい自分で調べろ。
0889デフォルトの名無しさん
2006/12/23(土) 18:28:00大方memcpy()であらぬメモリを壊しているのだろ。
アドレスとサイズを出力してよくチェックして味噌。
0890デフォルトの名無しさん
2006/12/23(土) 18:36:16あほか
0891デフォルトの名無しさん
2006/12/23(土) 18:41:39Vecotrを 配列と同じに書いちゃってるプログラムなんだけどさー
実行すると「確保されてねーよ」って例外エラードカドカでるんだけど、、、
昔はこれで動いてたのに、いつの間にこんな仕様になったんだ?
俺の作ったプログラムじゃないんだけどねw どう直せば動くんかのう
0892デフォルトの名無しさん
2006/12/23(土) 18:43:03頼むからこっちでやってくれ
ttp://pc8.2ch.net/test/read.cgi/tech/1164376614/l50
0893デフォルトの名無しさん
2006/12/23(土) 18:59:46vector<byte> buffer;
buffer.reserve(filesize);
で
ファイルの読み込み先として &buffer[0] ってポインタで渡してるつもりなんだろうけど
コンパイルは当然通って、いざ実行してみるとSTLのソース内で例外エラーが出る
簡単つーなら、対策一言で書いてくれよ。書けるならなwww
0894デフォルトの名無しさん
2006/12/23(土) 19:06:36ここはVC
0895デフォルトの名無しさん
2006/12/23(土) 19:09:060896デフォルトの名無しさん
2006/12/23(土) 19:12:40出直せ
0897検索中
2006/12/23(土) 19:15:42くだらねーレスはいらねーつーの
0898887
2006/12/23(土) 19:24:47レスありがとうございます。
メモリのアドレス等の表示はやったことがありませんでした。
これから勉強します。
もうひとつだけ教えていただきたいのですが、
memcpyはコピー開始で次の行に移るのか、
それともコピー完了で移るのかを教えてください。
バッファを複数使って並列に作業をさせているらしいのですが、
後者であれば意味が無いと思いまして…。
すみませんが、よろしくお願いします。
0899デフォルトの名無しさん
2006/12/23(土) 19:26:50一般に何か並列に作業をしたかったらマルチスレッドにしろ。
0900887
2006/12/23(土) 19:42:54レスありがとうございます。
メモリのアドレス等の表示はやったことがありませんでした。
これから勉強します。
もうひとつだけ教えていただきたいのですが、
memcpyはコピー開始で次の行に移るのか、
それともコピー完了で移るのかを教えてください。
バッファを複数使って並列に作業をさせているらしいのですが、
後者であれば意味が無いと思いまして…。
すみませんが、よろしくお願いします。
0901デフォルトの名無しさん
2006/12/23(土) 19:45:570902デフォルトの名無しさん
2006/12/23(土) 20:07:49>v[5] = 0;
おやおや、>886ではこのように書いているのに
>vector<byte> buffer;
>buffer.reserve(filesize);
>893ではいきなりreserve()していることにしちゃいましたよ。
この馬鹿は構うとどこまで書いてくるんでしょうかね。
0903デフォルトの名無しさん
2006/12/23(土) 20:09:58構うなよヴォケ
0904887
2006/12/23(土) 21:32:53>>899
ありがとうございます。
疑問が解けました!
DMA転送の速度等に問題がある場合は、
データ取り込み用のバッファを複数用意して
順番に使うのは効果があるということでしょうか…?
0905887
2006/12/23(土) 21:43:06どちらにせよVC上ではマルチスレッドを使わなければ
並列処理のような制御はできないということでしょうか?
0906デフォルトの名無しさん
2006/12/23(土) 21:43:140907デフォルトの名無しさん
2006/12/23(土) 21:46:430908デフォルトの名無しさん
2006/12/23(土) 21:49:15CPUが並列処理できないと擬似マルチ
0909887
2006/12/23(土) 22:36:26memcpyの転送元は画像入力デバイス上のメモリにあるフレームバッファで、
転送先はグローバル変数で定義されているようです。
これはDMA転送になると思うのですが、
このような場合、フレームバッファを複数用意して順番に、
データ取り込み→memcpyを行うメリットはありますか?
過去に実験をした人が、バッファの数を1つから2つにして、
順番に使ったところ大きな画像データも扱えるようになったと言っていたのですが…。
0910デフォルトの名無しさん
2006/12/23(土) 23:30:460911デフォルトの名無しさん
2006/12/24(日) 00:31:27今までプログラム等をしたことがなくまったくの初心者です
Expressの方にはエディタも付いているみたいなんですがそれ以外にも違いがあれば教えてください
環境はwindows XPのホームです
0912デフォルトの名無しさん
2006/12/24(日) 00:34:320913検索中
2006/12/24(日) 01:03:05>v[5] = 0;
おやおや、>886ではこのように書いているのに
>vector<byte> buffer;
>buffer.reserve(filesize);
>893ではいきなりreserve()していることにしちゃいましたよ。
この馬鹿は構うとどこまで書いてくるんでしょうかね。
ぷ、どっちでもいいでしょ。例なんだし
別にReserveしないで [5]につっこんだから、問題になってるんじゃねーし
まぁ、どうせあんたもわかんねーんだろw
VC2003とかなら通ってたコードだし、調べても
「vectorのiteratorはポインタと同じ(ただし厳密には保障されない)」とか書いてるやつ多いしな
2005のSTLなって実装が変わったって話だし、意識したことない人は知らないんでしょ?w
0914検索中
2006/12/24(日) 01:05:14実際に何か突っ込まないと、reserveも未処理のままなんでしょ。
0915デフォルトの名無しさん
2006/12/24(日) 01:49:09特にこういうチェックをしていたわけではなかったと思うけど。
0916デフォルトの名無しさん
2006/12/24(日) 03:44:35例えば、ファイルからデータを読み込んでそれを
vector<char> vec; に格納する一番エレガントな方法ってどんなでしょうね?
自分の知識だと…
char *pbuf = new char[size];
でバッファを一旦確保して、ifstream::read()等でバッファにデータを読み込んで
それから vector にコピーするって方法しか思いつきません…
ファイルの読み込み関数で直接空のvectorを指定出来れば楽だけど、
それだと関数側でvectorを操作してバッファを確保してもらう事になるんですが
そんな便利な関数ってありましたっけ?
0917916
2006/12/24(日) 03:49:27copy(pbuf, pbuf + size, back_inserter(vec));
でコピー出来るんだけど、ファイルの読み込み関数で直接vector指定ってのは、やはりムリ?
0918916
2006/12/24(日) 03:59:05vectorは「ベクトル」なのか「ベクター」なのか。
自分はベクトルって言ってたのですが、なんか違う様な。
やっはり配列って意味の場合はベクターなのかな。
0919デフォルトの名無しさん
2006/12/24(日) 04:05:25厳密に言えばvectorはvectorでしかない
0920デフォルトの名無しさん
2006/12/24(日) 04:13:13更に分からなくなったw
参考までにあなたは何と呼んでますか?
0921デフォルトの名無しさん
2006/12/24(日) 04:30:35ふぇくとr−
ヴぇくた
ヴぇくtr−
うぇww
舌っ足らずなもので・・・
0922デフォルトの名無しさん
2006/12/24(日) 08:16:20ベクトルとベクタは違うと思うの?
どちらもvectorなんだけど。
0923デフォルトの名無しさん
2006/12/24(日) 09:14:04いや、読みはどうなのかなと。
なんか配列って意味では、ベクタって言ってる人が多い様な気が…
そもそも使い分けが必要なのかとか。
もうどっちでもOKって事で良いですか?
0924デフォルトの名無しさん
2006/12/24(日) 09:26:11力学などで使う力の方向などを表す用語と解釈されそうなんで、俺は
ベクタと言ってるな。
0925デフォルトの名無しさん
2006/12/24(日) 09:28:17std::istream is;
vector<char> vec;
typedef std::istreambuf_iterator<char> isbuf_iter;
std::copy(isbuf_iter(is), isbuf_iter(), back_inserter(vec);
また、std::vectorの要素は連続することが保障されているから、
予めresizeしておけばis.read(&vec[0], vec.size());なんてこともできる。
0926デフォルトの名無しさん
2006/12/24(日) 09:32:54ROMってるやつが大勢いるんだな
0927デフォルトの名無しさん
2006/12/24(日) 11:39:33なるほど、色々ありますね。
やっぱC++は複雑だ。勉強になりました。
0928デフォルトの名無しさん
2006/12/24(日) 16:39:160929デフォルトの名無しさん
2006/12/25(月) 02:35:540930デフォルトの名無しさん
2006/12/25(月) 14:10:590931デフォルトの名無しさん
2006/12/25(月) 14:27:20アニメーションコントロールでaviファイル再生、停止後、画面に残っている再生画を
消したいのですが、どうすればいいでしょうか?
0932デフォルトの名無しさん
2006/12/25(月) 14:34:09「問題が発生したため〜を終了します。ご不便を・・・」のダイアログが
バグの種類によって表示される場合とされない場合があるようです。
どのような場合に表示されずに、いきなりアプリが落ちてしまうのか
ご存知の方いればお教えください。
今までの感じからは、アプリ本体でなくDLLで異常の場合に表示されないことが
あったような気がしますが検証はできていません。
0933天パ
2006/12/25(月) 16:19:290934デフォルトの名無しさん
2006/12/25(月) 16:23:380935デフォルトの名無しさん
2006/12/25(月) 17:24:31ここで質問させてください
パソコン上の画面を画像として保存というかその画像をつくるのには
どうしたらいいのですか?よくソースを出す時やmixiの画像とか・・・。
ああいう画像(?)ってどうやったら作れるのですか??
質問の意味がよく分からないかも知れませんが誰か分かる人いましたら
教えてください。
0936デフォルトの名無しさん
2006/12/25(月) 17:28:19http://www13.plala.or.jp/kymats/study/MULTIMEDIA/ScreenCapture.html
0937デフォルトの名無しさん
2006/12/25(月) 17:35:14スクリーンキャプチャっていうんですね
ありがとうございます!
0938デフォルトの名無しさん
2006/12/25(月) 17:54:01つ[PrintScreen]
つ[PC初心者]
0939デフォルトの名無しさん
2006/12/25(月) 23:06:570940デフォルトの名無しさん
2006/12/25(月) 23:33:020941デフォルトの名無しさん
2006/12/25(月) 23:54:240942デフォルトの名無しさん
2006/12/26(火) 00:09:22ここには登録必要ないって書いてあるんですが聞いてみたら必要っぽい回答が帰ってきたんですが・・・
ttp://homepage3.nifty.com/mmgames/c_guide/p_vc2005.html
0943デフォルトの名無しさん
2006/12/26(火) 00:21:130944デフォルトの名無しさん
2006/12/26(火) 00:23:07いろいろ大変なんdねすよ・゚・(つД`)・゚・
0945デフォルトの名無しさん
2006/12/26(火) 00:30:07死ぬしか方法がなくなるぞ。
0946デフォルトの名無しさん
2006/12/26(火) 00:47:590947デフォルトの名無しさん
2006/12/26(火) 00:51:200948デフォルトの名無しさん
2006/12/26(火) 00:55:57CDからインスコして見ます
0949デフォルトの名無しさん
2006/12/27(水) 20:58:01プロパティページ内にタブコントロールを表示することってできないんですか?
シートのリソースにタブはっ付けてみたんだけど表示されない・・・orz
0950デフォルトの名無しさん
2006/12/27(水) 22:13:180951デフォルトの名無しさん
2006/12/27(水) 22:30:26ttp://m--takahashi.com/bbs/default.aspx?c=14109
0952デフォルトの名無しさん
2007/01/01(月) 03:07:200953デフォルトの名無しさん
2007/01/03(水) 01:50:55VC++6.0 ダイアログベースで開発を行っています。
垂直スクロールバーを設置したいと思い、
右クリック→スタイル→垂直スクロールバー
にチェックをいれ、OnVScroll関数に必要な処理を記述し
実行したのですが、起動するアプリに垂直スクロールバーが表示されません。
水平スクロールバーは表示されるのですが、なぜか垂直スクロールバーは表示されません。
解決策をご存知の方、ご教授願います。
0954953
2007/01/03(水) 03:29:03垂直スクロールバーが表示されるようになりました。
ただ、SetWindowPosやMoveWindow等でサイズを変更すると、
垂直スクロールバーが消えてしまいます。
サイズ変更後は最小化や最大化をして再描画してもスクロールバーは表示されません。
どなたか詳しい方宜しくお願い致します。
0955デフォルトの名無しさん
2007/01/03(水) 08:57:11これででる
でなかったらでたやつを自分で消してるんだろう
0956デフォルトの名無しさん
2007/01/03(水) 09:52:58SIF_DISABLENOSCROLL
これ
0957デフォルトの名無しさん
2007/01/04(木) 18:49:11C2440のエラーでCWndに変換できないとかでてくるんですが
子スレッドにメッセージを配置する場合メインとは違うなにか書き方があるんですか?
0958デフォルトの名無しさん
2007/01/04(木) 19:00:45ON_THREAD_MESSAGE
0959デフォルトの名無しさん
2007/01/05(金) 17:00:53DirectXでIMEエディットボックスを使ったプログラムを組んでいます。
テキスト入力後も日本語入力(半角/全角キー)のままだとキー周りが上手く動きません。
日本語入力対応に組み替えてもいいのですが分岐が多くなるため避けたいです。
そこでテキスト入力後に半角英数入力になるようにしたいのですがどうすればいいのでしょうか。
DirectXのプログラムですがVC++で出来ると考えこちらに質問させていただきました。
もし違ってたら申し訳ありません。
0960デフォルトの名無しさん
2007/01/07(日) 01:56:06ネット検索でエディットコントロールの右にくっつける方法は分かりましたが、
どうやって範囲内でのカウントアップ&ダウンを行うのかが分かりません
やりたいことは単純で、10〜100の範囲で数字を1ずつ上下させ、OKボタンを
押下した時にその値を基に計算を行うだけです
どうすれば範囲内で値を上下させることができますか?
0961デフォルトの名無しさん
2007/01/07(日) 09:34:07ttp://www.kumei.jp/c_lang/sdk3/sdk_205.htm
こういうことか?
0962デフォルトの名無しさん
2007/01/07(日) 12:06:48FindWindowとかのWin32APIが使えず、PlatformSDKでないと使えないとわかりました。
これであってますか?
となるとプロジェクトの新規作成でWindowsフォームアプリケーションでは
Win32APIが使えない、ということですよね。
0963デフォルトの名無しさん
2007/01/07(日) 12:27:050964デフォルトの名無しさん
2007/01/07(日) 12:29:10それとWindowsフォームアプリケーションは.net仕様。
0965デフォルトの名無しさん
2007/01/07(日) 13:00:22その中で一番優良なものを教えて頂きたいんですが宜しくお願いします
0966デフォルトの名無しさん
2007/01/07(日) 13:09:450967デフォルトの名無しさん
2007/01/07(日) 13:58:49C++言語の規格は1つ。
C++コンパイラはいろんなメーカーから出てる。
VC++はその一つ。(コンパイラだけでなく、エディタ等も含んだ統合開発環境)
優良の基準がわからんので、どれがいいかは何とも言えん。
0968デフォルトの名無しさん
2007/01/07(日) 14:06:12API が使えないのはPlatformSDKが入ってないから。
MSのサイトから無料でダウンロード可能。
MFCはVSのstandard edition以上に含まれるC++のライブラリで
多くのAPI 呼び出しの煩わしさを軽減してくれるが嫌ってる人も多い。
これはSDKを入れても使えない。
0969デフォルトの名無しさん
2007/01/07(日) 15:46:21引数が無限値であるかどうかを判定する関数ってVC++にあるんでしょうか?
0970デフォルトの名無しさん
2007/01/07(日) 15:55:480971960
2007/01/07(日) 16:09:37そうです、ありがとうございます
「猫でもわかるプログラミング」ですか・・・
これで分からなかったら自分は猫以下ってことですね(汗
0972デフォルトの名無しさん
2007/01/07(日) 16:09:50それC99だからVCはサポートしてない。
独自拡張の_finiteを使う。
0973デフォルトの名無しさん
2007/01/07(日) 16:10:360974969
2007/01/07(日) 17:24:43ありがとうございます!
0975デフォルトの名無しさん
2007/01/08(月) 06:01:143つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。
□偽装派遣先の社員の意見にはたとえ間違っていても反対しない
□偽装派遣先から「いつまでもここで仕事してくださいね」と言われるようになりたい
□自社に仕事を持ち帰れるように言われるとムカつく
□自社で仕事なんてできるわけがない
□派遣/受託の差異を指摘する人間はムカつく
□偽装派遣先には仕事だけでなく自分のプライベートについても指示して欲しい
□自分の月額金額を知らない
□偽装派遣先社員より自分の生涯収入が低いのは当然だ
□偽装派遣先に尻尾を振り、いつまでも一緒に仕事をすることが大切だ
□今のプロジェクトが終わっても同じ偽装派遣先に常駐したい
0976962
2007/01/08(月) 10:54:19とりあえず、.net仕様でAPIを使える方法を探してみます。
0977デフォルトの名無しさん
2007/01/08(月) 17:21:09IDのようなものだと考えてOKですか?
0978デフォルトの名無しさん
2007/01/08(月) 17:33:05データ値(変更なし)をプロパティウィンドウのData項目に指定区切り文字(セミコロン?)で
区切って10〜20件程度入れているのですが、それが反映されずに困っています
(実行した時にコンボボックスに表示されません)
コンボボックスのスタイルはダウンリストで選択オンリーにしてます
他に何か処理が必要なのでしょうか?
(参考としている書籍やサイトではコレでできているようなのですが・・・・・・)
0979デフォルトの名無しさん
2007/01/08(月) 17:59:49いいえ、窓についている取っ手(=ハンドル)のようなものだと思ってください。
#必要に応じて窓をコントロールする取っ手を追加できるところがアナロジーにならないけれど。
0980デフォルトの名無しさん
2007/01/08(月) 18:34:25区切りって改行じゃなかったっけ?
あと、リストの高さを調整し忘れてないか?
0981デフォルトの名無しさん
2007/01/08(月) 20:17:05UNICODEにしたらコンパイルエラーを100個以上も出しやがった、じっくり何処が悪いのか
検証も兼ねて主導でプリフィックスにTEXTとか(LPWSTR)付けてたが、流石に飽きてきた
残り30個くらいなのだが、プリフィックスを簡単に変換する方法はないですか?
0982デフォルトの名無しさん
2007/01/08(月) 21:13:390983デフォルトの名無しさん
2007/01/08(月) 23:08:21レス、ありがとうです
その辺をもう一度調べ直してみます
0984デフォルトの名無しさん
2007/01/08(月) 23:12:050985デフォルトの名無しさん
2007/01/08(月) 23:18:44正規表現を使って置換
0986デフォルトの名無しさん
2007/01/08(月) 23:19:23LPWSTR に固定するなら L"hoge"; のほうがry
0987デフォルトの名無しさん
2007/01/08(月) 23:32:48みんさんどうもありがとう
>>982
手っ取り早く日本語に出来る方法があれば教えてください
>>984
そこら辺が少し曖昧なので、学習中です
>>985
それも考えましたが、学力が無いので最初の"と二番目の"にTEXTとか(LPWSTR)
付いてしまい、叶いませんでしたせいぜいgrepで""の付いてる行を抜出す程度の
能力なのでスマスソ良かったら教えてくださいませませ
>>986
そうなんですか、そもそもこの型変換って作業は変数を固定することと考えればOK?
なのでしょうか、pinとかptrとかも出てきますよね、
あ〜頭が混乱します。
0988デフォルトの名無しさん
2007/01/09(火) 00:17:33VC6の正規表現の仕様忘れたけど
置換前 "[^"]*"
置換後 TEXT(\0)
でいけるんでは?
もっとも、これだと#includeの""や既にTEXT("hoge")になっている部分も置換されてしまうので
注意が必要だが…
0989デフォルトの名無しさん
2007/01/09(火) 00:44:41987です
使えそうですねサンクス
0990デフォルトの名無しさん
2007/01/09(火) 00:57:41_UNICODEじゃなく_MBCSにしたほうが修正量はずっと少ないと思う。
現状で日本語がでないのはUNICODEのせいじゃなくリソースの
言語設定が日本語になってないからじゃないかな。
今後のこと考えるなら_UNICODEでも良いけどね。
0991デフォルトの名無しさん
2007/01/09(火) 10:45:080992デフォルトの名無しさん
2007/01/09(火) 18:22:10質問の趣旨が少し変わってきましたけど、外人さんの作ったVC6のプログラムで
日本語を使う方法を教えてもらえませんか。
コンパイルの設定を具体的にどの様に設定したらいいのでしょう?
ソースはVC6で書かれているのですが、自分はVS2005しか持っていません
関係しそうな設定ですが
構成プロパティ全般の設定で
文字セット マルチバイト文字セットを使用する
共通言語ランタイムサポート 共通言語ランタイムサポートを使用しない
大雑把ですがこのようになっています。
0993デフォルトの名無しさん
2007/01/09(火) 18:43:330994デフォルトの名無しさん
2007/01/09(火) 18:56:30.NET2003を消さずにVC入れたのがいけなかったみたいで…
どこにパスを書いたらいいのかが分からないです。教えて偉い人!
0995デフォルトの名無しさん
2007/01/09(火) 19:14:04これ見て設定しる。
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
0996デフォルトの名無しさん
2007/01/09(火) 20:07:10試しにドイツ語のVC6 MFCプロジェクト(_MBCS定義済み)を持ってきて
VC8(VS2005)で開き「バージョン情報ダイアログ」を日本語化してみた。
手順
1.プロジェクトのプロパティでリソースのカルチャを日本語にする
2.リソースビューでIDD_ABOUTBOXをシングルクリックしプロパティのLanguageを日本語に
3.リソースビューでIDD_ABOUTBOXをダブルクリックしFontを日本語Fontに変更
4.ダイアログに適当に日本語を設定しビルド
これで日本語が表示されました。あとPG内で_tsetlocaleはしておいたほうが無難。
UNICODEとMBCSで、どっちが楽かはソース見ないと判断できない。
0997デフォルトの名無しさん
2007/01/09(火) 21:20:51>>992です
ありがとう
1.プロジェクトのプロパティでリソースのカルチャを日本語にする
は直分かったのですが
2.3.のリソースビューってのは何処にあるのでしょうか?
0998デフォルトの名無しさん
2007/01/09(火) 21:29:220999デフォルトの名無しさん
2007/01/09(火) 21:32:58有難うございました。本当に2003は関係無く出来ました。
もう一つだけ質問なんですけど、「指定されたファイルが見つかりません」と
出るのは置いてる位置が悪いんでしょうか。デスクトップに置いてるファイルで
ビルドを自動でやってくれるファイルなんですけど
1000デフォルトの名無しさん
2007/01/09(火) 21:34:32OS:winXP
コンパイラ:Borland C++Compiler 5.5
プログラム:#include <stdio.h>
int main(void)
{
printf("hello, world\n");
return 0;
}
エラー:エラー E2209 a.c 1: インクルードファイル 'stdio.h' をオープンできない
警告 W8065 a.c 5: プロトタイプ宣言のない関数 'printf' の呼び出し(関数 main )
*** 1 errors in Compile ***
その他状況:bcc32.cfgとilink32.cfgはcfgファイルになっており、binの中に入っています。内容に間違いもありません。
pathの末尾には;c:\borland\bcc55\binを付け加えています
あと気になっていることで、stdio.hがローカルディスク(c)の中にないか、検索したのですが、見つかりませんでした。
ダウンロードも何度かやり直してみたのですが、どうにもなりません。
どうすればよいでしょうか。教えてください。お願いします。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。