★初心者にVisual C++を教えるスレ★ Part31
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/07/31(木) 18:02:28お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
過去スレ、関連スレなどは>>2-5辺り。
0002デフォルトの名無しさん
2008/07/31(木) 18:03:50Part29 ttp://pc11.2ch.net/test/read.cgi/tech/1203007556/
Part28 ttp://pc11.2ch.net/test/read.cgi/tech/1196430042/
Part27 ttp://pc11.2ch.net/test/read.cgi/tech/1189394427/
Part26 ttp://pc11.2ch.net/test/read.cgi/tech/1176387917/
Part25 ttp://pc11.2ch.net/test/read.cgi/tech/1168354839/
Part24 ttp://pc10.2ch.net/test/read.cgi/tech/1158296664/
Part23 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/
0003デフォルトの名無しさん
2008/07/31(木) 18:04:33Part11 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
0004デフォルトの名無しさん
2008/07/31(木) 18:08:44■MFC相談室 mfc19d.dll■
http://pc11.2ch.net/test/read.cgi/tech/1207301867/l50
Win32API質問箱 Build68
http://pc11.2ch.net/test/read.cgi/tech/1215348804/
【C++】 DirectX初心者質問スレ Part18 【C】
http://pc11.2ch.net/test/read.cgi/tech/1216270204/
C言語なら俺に聞け(入門篇) Part 33
http://pc11.2ch.net/test/read.cgi/tech/1217073697/
【初心者お断り】ガチ規格準拠C専用スレ Part133
http://pc11.2ch.net/test/read.cgi/tech/1201153965/
C++相談室 part63
http://pc11.2ch.net/test/read.cgi/tech/1217008269/
C/C++の宿題を片付けます 114代目
http://pc11.2ch.net/test/read.cgi/tech/1216746971/
【初心者歓迎】C/C++室 Ver.57【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1216215558/
【関連サイト】
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ ※変更された
http://msdn.microsoft.com/library/ja/
http://msdn2.microsoft.com/ja-jp/library/ (2005のことはこっち)
Platform SDK Update ※変更された
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
http://www.google.co.jp/
0005デフォルトの名無しさん
2008/07/31(木) 18:09:25part 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
0006デフォルトの名無しさん
2008/07/31(木) 18:09:54Microsoft Windows Server 2003 R2 Platform SDK Web Install
http://www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&DisplayLang=en
(ISO版などあり)
これ以降、Platform SDK + .NET Framework SDKとして
Windows SDKが公開されていて、その中で一番新しいのはこれ。
Windows SDK for Windows Server 2008 and .NET Framework 3.5
http://www.microsoft.com/downloads/details.aspx?FamilyID=f26b1aa4-741a-433a-9be5-fa919850bdbf&DisplayLang=en
少し前のバージョン(Vista + .NET 3.0の初期版)には日本語版もあったけど、
日本語化されているのは専ら.NET Framework部分だけ。
VC6対応の、最後のPSDKはここ。
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
テンプレ終わり。
0007デフォルトの名無しさん
2008/08/01(金) 00:50:370008デフォルトの名無しさん
2008/08/01(金) 00:52:5700098
2008/08/01(金) 00:54:430010デフォルトの名無しさん
2008/08/02(土) 17:09:17vector<string>の宣言時に一括して配列へ文字を
代入したいのですがどうすればいいのでしょうか。
javaとかだとこんな感じの事です。
var s1 = ["【", "】"];
0011デフォルトの名無しさん
2008/08/02(土) 17:19:060012デフォルトの名無しさん
2008/08/02(土) 17:23:360013デフォルトの名無しさん
2008/08/02(土) 17:31:17ろくに勉強もしないで人に聞くのは感心しない
0014デフォルトの名無しさん
2008/08/02(土) 18:08:23C++スレ行ってみます。
>>12
vectorであるのかなと思いまして。
0015デフォルトの名無しさん
2008/08/02(土) 18:57:56システムフックによって任意のウィンドウを操作するプログラムを作成しているのですが、
以下のウィンドウクラスのウィンドウを移動、リサイズすることができません。
・afx:...
・WTL:...
・TApplication
WM_CREATEメッセージをフックしているのですが、他のメッセージを処理する
必要があるのでしょうか?処理対象のウィンドウが間違っているのでしょうか?
開発環境はVC++ 2008 Express Editionです。WindowsXP SP3で動作確認しています。
0016デフォルトの名無しさん
2008/08/02(土) 19:03:16001715
2008/08/02(土) 19:27:39以下のページに記載されている方法によって操作対象のウィンドウを抽出しています。
http://blog.goo.ne.jp/masaki_goo_2006/e/e6586cd582874300c0e97e12a1056415
ウィンドウの抽出条件に問題があるのでしょうか?
0018デフォルトの名無しさん
2008/08/02(土) 19:41:32WM_CREATE以外でも動かなかったら処理対象のウィンドウがまずい
001915
2008/08/02(土) 19:57:25WM_SIZEメッセージをフックするようにしたところ、afx:...とWTL:...の操作に成功しました。
しかし、TApplicationの操作に失敗します。
0020デフォルトの名無しさん
2008/08/02(土) 21:53:42たしかTApplicationではなく、そいつをオーナーにしているウィンドウが
実際に画面に表示されているウィンドウのはず。
002115
2008/08/03(日) 01:48:33http://www.asahi-net.or.jp/~HA3T-NKMR/vcl3-2.htm
TApplicationの子ウィンドウを操作することによって
移動、リサイズすることができるようになりました。
0022デフォルトの名無しさん
2008/08/04(月) 21:42:49ttp://xtp0001.s3.x-beat.com/cgi-bin/up/source/Sonata_25362.jpg
この D: 243MB が気になって夜も眠れません
外付けHDD(H:\)を繋ぐと H: 243MB と表示されます
これは何なのでしょうか
0023デフォルトの名無しさん
2008/08/04(月) 21:48:500024デフォルトの名無しさん
2008/08/04(月) 21:49:33ウイルスだな
0025デフォルトの名無しさん
2008/08/04(月) 21:51:420027デフォルトの名無しさん
2008/08/04(月) 22:37:070029デフォルトの名無しさん
2008/08/05(火) 17:59:550030デフォルトの名無しさん
2008/08/05(火) 19:07:37望む画像形式のデータを構築して、ファイルをopenしてwriteする。
0031デフォルトの名無しさん
2008/08/05(火) 20:30:10タイプはCString型です。
0032デフォルトの名無しさん
2008/08/05(火) 20:38:490033デフォルトの名無しさん
2008/08/05(火) 21:24:23コピペされたら数字以外除去
0034デフォルトの名無しさん
2008/08/05(火) 21:26:11HelloWorld!
0035デフォルトの名無しさん
2008/08/05(火) 21:48:000036デフォルトの名無しさん
2008/08/06(水) 00:14:36HWND hWnd や HINSTANCE hCurInst とは
int a みたいな感覚でいいんでしょうか?hWnd、hCurInstのところは自分で勝手に変えられるのでしょうか?
0037デフォルトの名無しさん
2008/08/06(水) 00:17:34その認識で合っている。
0038デフォルトの名無しさん
2008/08/06(水) 00:37:410039デフォルトの名無しさん
2008/08/06(水) 01:30:58http://news24.2ch.net/test/read.cgi/news7/1212845155/l50
0040デフォルトの名無しさん
2008/08/06(水) 09:59:26エディットボックスの文字列をOnDeltaposSpin1関数
内で取得して変数に変換してこの値にスピンボタンを押したとき
エディットボックスの文字列の値が指定しただけ増えるというような
設定にしたいのですがOnDeltaposSpin1関数でエディットボックスの
文字列を取得する方法がわかりません。
どうか教えてください。
0041デフォルトの名無しさん
2008/08/06(水) 10:04:41ていうか、エディットボックスの文字列、普段どうやって取得してるの?
0042デフォルトの名無しさん
2008/08/06(水) 10:11:200043デフォルトの名無しさん
2008/08/06(水) 10:17:390044デフォルトの名無しさん
2008/08/06(水) 10:46:200045デフォルトの名無しさん
2008/08/06(水) 17:09:05エディットボックスに表示されている文字列が保存されるという事をやりたいんですが、
inifileを使えばいいらしいんですけど調べてみても使い方がよくわかりらないので
教えて下さい。お願いします。
0046デフォルトの名無しさん
2008/08/06(水) 19:01:52Application::EnableVisualStyles()
#include "stdafx.h"
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
この様な中身になっているのですが、これは何の言語なのでしょうか?C、C++?
初めて見る形なので戸惑ってます・・・
0047デフォルトの名無しさん
2008/08/06(水) 19:05:220048デフォルトの名無しさん
2008/08/06(水) 19:07:120049デフォルトの名無しさん
2008/08/06(水) 19:16:310050デフォルトの名無しさん
2008/08/06(水) 23:12:41_i64toa_s
_ui64toa_s
の違いがわからんのですが
int
long int
unsigned long int
に対応したitoa という認識でおKですか?
0051デフォルトの名無しさん
2008/08/06(水) 23:58:290052デフォルトの名無しさん
2008/08/07(木) 00:01:35C++/CLIは最早C++ではないぞ。
0053デフォルトの名無しさん
2008/08/07(木) 02:47:240054デフォルトの名無しさん
2008/08/07(木) 03:26:17GetProcessMemoryInfoでヒープメモリを比べてみた所、
ファイルサイズ分?メモリを消費していました。
PathFileExistsの後にこの分のメモリは解放できないのでしょうか。
0055デフォルトの名無しさん
2008/08/07(木) 04:40:430056デフォルトの名無しさん
2008/08/07(木) 06:10:53プログラムがおわった時点で解放されてれば問題なし
0057デフォルトの名無しさん
2008/08/07(木) 08:53:48ファイルを読み込ませる時のチェックに使っているので、
その度にメモリへ蓄積されていってくのですが、
こちらは気にしなくても良いのでしょうか。
0058デフォルトの名無しさん
2008/08/07(木) 09:02:420059デフォルトの名無しさん
2008/08/07(木) 12:01:16そういった場合はどうすればいいのでしょうか。
0060デフォルトの名無しさん
2008/08/07(木) 13:10:19PathFileExistsには問題がなくてお前のプログラムに問題があるか、
全然問題ないのに単なる妄想でいらない心配してるかのどっちかだろ
0061デフォルトの名無しさん
2008/08/07(木) 13:54:56↓のような保存ボタンと読み込みボタンを作って保存して読み込みしたら、
読み込みには成功したんですけど、もう一回保存を押して読み込みを押しても、
一回目の値が表示されます。
TCHAR szIniFile[MAX_PATH+1];
LPCTSTR szSection;
GetModuleFileName( NULL, szIniFile, sizeof(szIniFile) );
for (int i = _tcslen(szIniFile) - 1; i >= 0; i --)
{
if (szIniFile[i] == _T('\\'))
{
szIniFile[i + 1] = _T('\0');
break;
}
}
_tcscat(szIniFile, "setting.ini" );
szSection = _T("No");
WritePrivateProfileString(szSection, _T("No.1"), m_ed, szIniFile);
0062デフォルトの名無しさん
2008/08/07(木) 14:07:41それだけ書かれても原因はわからん。
そこ以外に問題があるんじゃないの?
0063デフォルトの名無しさん
2008/08/07(木) 14:23:52表示する文字列を扱ってます。なにか
指定先にすでにファイルがある場合消去して書き直すような方法はないでしょうか?
ほかの部分が問題っていうのはもっとほかの部分なんでしょうか?
TCHAR szIniFile[MAX_PATH+1];
LPCTSTR szSection;
char tmp[6];
GetModuleFileName( NULL, szIniFile, sizeof(szIniFile) );
for (int i = _tcslen(szIniFile) - 1; i >= 0; i --)
{
if (szIniFile[i] == _T('\\'))
{
szIniFile[i + 1] = _T('\0');
break;
}
}
_tcscat(szIniFile, "setting.ini" );
szSection = _T("No.1");
GetPrivateProfileString(szSection, _T("No.1"), _T("0"), tmp, sizeof(tmp), szIniFile);
SetDlgItemText(IDC_EDIT1,tmp);
0064デフォルトの名無しさん
2008/08/07(木) 14:52:45VistaでProgram Files の中で実行してる、とかじゃないだろうな?
あまりiniファイルお勧めしないけどな。
0065デフォルトの名無しさん
2008/08/07(木) 16:00:37アドバイスしてくれた皆さんありがとうございました。
イニファイルのなかってメモ帳みたいですね。
いろいろじくってたせいでいろんな値が入ってました。
0066デフォルトの名無しさん
2008/08/07(木) 16:01:26すいません。
0067デフォルトの名無しさん
2008/08/07(木) 16:53:48コンボボックスの選択位置を読み取るには、
int n=comboBox1->SelectedIndex;
を用いる。一番上が選ばれている場合は、n=0になる。
って書いてあったのでそのままコピペしたら
comboBox1定義されていない識別子です
SelectedIndex左側がクラス、構造体、共用体へのポインタではありません。
ってエラーが出てきたんですけどどうしたらいいんですか?
0068デフォルトの名無しさん
2008/08/07(木) 17:06:19環境は?
FormならComboBox貼り付けたらデフォルトでそういった名前になってると思うが。
MFCなら右クリックで変数の追加、Win32APIならもうちょっと別な方法になる。
0069デフォルトの名無しさん
2008/08/07(木) 17:11:16VC++6.0のMFCで作ってます。
0070デフォルトの名無しさん
2008/08/07(木) 17:20:06ttp://homepage3.nifty.com/ishidate/vcpp05_3/vcpp05_3.htm
ここでの解説はフォームアプリだからVC++6.0じゃ参考にならないよ。
まあMFCなら、変数の追加でControlで好きな名前で追加して、
その名前.GetCurSel() になるかな。
0071デフォルトの名無しさん
2008/08/07(木) 17:24:15コンボボックスはドロップダウンリスト形式にして、
リストが1.2.3.の三つを作ってドロップダウンリストから1を選んでから
保存ボタンを押すと1にエディットボックスのデータが保存されて、
2を選んでから保存ボタンを押すと2番に保存される、
読み込みボタンの方も同様に1を選んで読み込みを押すと1のデータが読み込まれる、
といったプログラムを作りたいんです。
それでコンボボックスをダイアログに貼り付けてOnSelchangeCombo1()
という%
0072デフォルトの名無しさん
2008/08/07(木) 17:25:09コンボボックスはドロップダウンリスト形式にして、
リストが1.2.3.の三つを作ってドロップダウンリストから1を選んでから
保存ボタンを押すと1にエディットボックスのデータが保存されて、
2を選んでから保存ボタンを押すと2番に保存される、
読み込みボタンの方も同様に1を選んで読み込みを押すと1のデータが読み込まれる、
といったプログラムを作りたいんです。
それでコンボボックスをダイアログに貼り付けてOnSelchangeCombo1()
という関数を追加したんですがここからどうしたらいいのか分からなくて困ってます。
初心者でよくわからないので教えてもらえたらありがたいのですが。
保存ボタンと読み込みボタンはなんとか作りました。
ひとつしかデータセーブ出来ませんけど。
0073デフォルトの名無しさん
2008/08/07(木) 17:28:51レスありがとうございます、試してみます。
0074デフォルトの名無しさん
2008/08/07(木) 17:31:59変数の追加の部分は、右クリックでClassWizard...選んでメンバ変数から
該当のコントロール選んで変数の追加でカテゴリをコントロールにする、だな。
0075デフォルトの名無しさん
2008/08/07(木) 17:32:29ありがとうございます。
0076デフォルトの名無しさん
2008/08/07(木) 17:58:35if(m_combo1.GetCurSel==0){0の場所に保存する}
という感じだと思うのですが、
すいません実は61からの質問全部僕のなんですけど、保存する場所を変えるにはszSection
を変えれば良いんですかね。
コンボボックスの関数追加しなくてもよかったのかな?
どうもわかりません、教えてもらえないでしょうか?
0077デフォルトの名無しさん
2008/08/07(木) 18:15:19[section1]
key1=param1
という形式。
同じ項目ならkey1を増やせばいいし、カテゴリ増やすならsectionかえればいい。}
0078デフォルトの名無しさん
2008/08/07(木) 18:47:15がんばってみます。
0079デフォルトの名無しさん
2008/08/07(木) 20:14:50読み込みボタンで1番以外を選んで読み込むとフフフフフフフフとか出てきて
上手く読み込めません。
これはどういった現象なんでしょうか?
0080デフォルトの名無しさん
2008/08/07(木) 20:40:06debugビルドだよね?きっと「フ」じゃなくて「フ」だよね?
なら、プログラムが値を入れていない所を読み出したってこと。
http://www.google.co.jp/search?hl=ja&q=%EF%BE%8C%EF%BE%8C%EF%BE%8C%EF%BE%8C%EF%BE%8C%E3%80%80debug&lr=
0081デフォルトの名無しさん
2008/08/07(木) 20:51:42でもフフフフフフフフフが一瞬表示されてから、規定の範囲内の値を入れてください、
って警告が出た後、ちゃんと2番目のデータが表示されるんです。
なんで一番目だけうまくいくのか不思議です。
0082デフォルトの名無しさん
2008/08/07(木) 20:51:550〜255までの数値を入れることができるということですよね?
charに数値を入れるにはどうしたらいいですか?
0083デフォルトの名無しさん
2008/08/07(木) 21:07:250084デフォルトの名無しさん
2008/08/08(金) 04:56:56C++で質問です。
Visual c++ 2008で勉強中です。
ヘッダーファイルの使い方をお聞きします。
ある本のCDについていたコードなのですが、
hoge.h
hoge.cpp
というファイルがありました。
ヘッダーファイルにはクラスの定義しか書いていなくて、
cppファイルにそのクラスで利用する関数の中身が書かれていました。
自分はこのままでは、ヘッダーファイルをincludeしても利用できないと考えています。
でも、上記のヘッダーファイルをincludeしたファイルを動かすことができます。
何故上のようにかけるのでしょうか?
また、ヘッダーファイルにはクラス定義しか書かなくて、
そのメンバ関数の実装はヘッダーと同名のcppファイルに記述するのが現場ではいいとされているのでしょうか?
「お前これ分かってないからここ調べろ」という意見もぜひお願いします。
誰かに聞くことができない状態なので、ものすごく助かります。
お願いします。
0085デフォルトの名無しさん
2008/08/08(金) 05:32:05アプリ開発の際は、メモリをどう考えるのでしょうか?
たとえばPS1だとVRAMが少ないから格闘ゲームには不向きだ、セガサターンの方が向いてる、みたいな話を見たことがあるのですが
大規模な開発をする場合は、メモリはかなり重要な問題なのでしょうか?
今まではCでソートだとか入出力みたいな勉強しかしてこなかったので、進んでいくうちに疑問がわいてきました。
できればレスお願いします・・・
0086デフォルトの名無しさん
2008/08/08(金) 05:35:50まあこの場合クラスだけど、どこかにはありますよと言う宣言だから
そのヘッダファイルをインクルードして実装している
ソースファイルがきちんとあれば
他では宣言だけ見て存在だけ知ってれば使える
あと現場では良いとかじゃなくて普通そうするもの
0087デフォルトの名無しさん
2008/08/08(金) 05:37:480088デフォルトの名無しさん
2008/08/08(金) 05:52:30ヘッダーについて回答ありがとうございます。
なるほど。では、ヘッダーは1つで、実装してるcppが2つある、
ということもあるのでしょうか?
ヘッダーを利用するプログラムによって、そのcppを切り替えたりすることができそうな
気がしいるのですが、そんなことってありますか?
0089デフォルトの名無しさん
2008/08/08(金) 06:27:20開発する際、ソリューションエクスプローラの使い方がいまいち分かりません。
たとえば電卓をGUIで作るとき、どのようなプロジェクト構成になりますか?
■予想1
ソリューション電卓
電卓プロジェクト
ソースファイル ○GUIソース、処理ソース
ヘッダーファイル ○(必要なもの)
リソースファイル ○(なし)
それとも、
■予想2
ソリューション電卓
GUIプロジェクト
ソースファイル ○GUIソース
ヘッダーファイル ○(必要なもの)
リソースファイル ○(なし)
処理プロジェクト
ソースファイル ○処理ソース
ヘッダーファイル ○(必要なもの)
リソースファイル ○(なし)
予想2のように、モジュールごとにプロジェクトを作成するのものなのでしょうか?
0090デフォルトの名無しさん
2008/08/08(金) 09:49:02cpp はコンパイルして obj になるだろ。
関数そのものは、このobjとリンクして使えるようになるんだよ。
その関数の使い方が書いてあるのがヘッダだし、
1つ以上のobjをまとめたものが lib ファイル。
0091デフォルトの名無しさん
2008/08/08(金) 09:51:14そのソートだって、膨大なデータをソートするとなると
オンメモリでできるのかどうかが重要になるでしょう。
ゲームで問題になるのは、リアルタイムで動作させなくちゃならないから、
できる限りオンメモリにしておく必要があるからな。
0092デフォルトの名無しさん
2008/08/08(金) 12:44:52モジュールごとにプロジェクトを作成する。
けど、上記のモジュールってできあがるファイルのことよ。exeとかlibとかdllとか。
もんの凄い強力な電卓でなければ、普通はGUIと計算を別モジュールに分けないでしょうね。
「分けるのが目的なんだ」ってことならば、分けるのは可能です。
0093デフォルトの名無しさん
2008/08/08(金) 15:30:49>>92
回答ありがとうございます。
どうやらC++でのプログラムの作り方自体自分はよくわかっていないようです。
何か勉強になるサイトや本、見るとためになるようなものがあれば教えていただけませんか?
0094デフォルトの名無しさん
2008/08/08(金) 15:43:140095デフォルトの名無しさん
2008/08/08(金) 19:06:15ありがとうございました
charに数値を入れることができました
ひょっとしてcharを配列にすると8Bit以上の数値を入れることもできますか?
0096デフォルトの名無しさん
2008/08/08(金) 19:28:030097デフォルトの名無しさん
2008/08/09(土) 00:04:46分野にもよる。
家庭用ゲーム機は全体的にメモリが(同時期のPCと比べ)少ない場合が多いというだけ。
だからその分上手にやりくりしないといけない。
PCやサーバだとあまりそういう話は聞かない。無駄遣いは忌避されるべきだがそこまでシビアにはならない。
0098デフォルトの名無しさん
2008/08/09(土) 00:13:040099デフォルトの名無しさん
2008/08/09(土) 13:50:06PSとサターンで同じゲームを作ったときは
どの文字を使うかってのも気を使ってた
同じシーンで使う文字種を減らしてフォント絵のメモリ節約とか
0100デフォルトの名無しさん
2008/08/09(土) 13:53:120101デフォルトの名無しさん
2008/08/09(土) 16:46:110102デフォルトの名無しさん
2008/08/09(土) 16:50:39キャラ動かしたりするのは元データがあって、それをプログラマーが動かしてたの?
プログラマーによって綺麗な画面になったり汚い画面になるとか聞いたことがあるが。。。。。。わからん
0103デフォルトの名無しさん
2008/08/09(土) 16:53:190104デフォルトの名無しさん
2008/08/09(土) 16:55:510105デフォルトの名無しさん
2008/08/09(土) 18:38:36それだとリアルタイムレンダリング?だからプログラマーの腕が問われるのかね。スレチだな
0106デフォルトの名無しさん
2008/08/10(日) 16:47:15作っていったらいいのですか?
ソリューションライブラリーのようなものを作って、
プロジェクトごとにヘッダーを1つずつ作ればいいのでしょうか?
0107デフォルトの名無しさん
2008/08/10(日) 19:04:480108デフォルトの名無しさん
2008/08/10(日) 20:18:28ファイル → 新規作成 → プロジェクト → Win32プロジェクト → アプリケーションの設定画面で「空のプロジェクト」にチェック
プロジェクト → 新しい項目の追加 → C++ファイル(cpp)
として、ソースファイルに
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR 1pCmdLine,
int nCmdShow
) {
return 0;
}
というプログラムを書いて「ソリューションのビルド」をしたところ、
1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
1>コンパイルしています...
1>test.c
1>c:\source\test\test.c(6) : error C2059: 構文エラー : 'サフィックスが無効です。'
1>c:\source\test\test.c(6) : error C2143: 構文エラー : ')' が '定数' の前にありません。
1>c:\source\test\test.c(6) : error C2143: 構文エラー : '{' が '定数' の前にありません。
1>c:\source\test\test.c(6) : error C2059: 構文エラー : '<不明>'
1>c:\source\test\test.c(8) : error C2059: 構文エラー : ')'
1>ビルドログは "■■■■" に保存されました。
1>test - エラー 5、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
となって失敗してしまいました。
全て本に書いてある通りに行ったつもりなのですが、何がいけなかったのでしょうか。
使用OSはWindows Vistaなのですが・・・
0109デフォルトの名無しさん
2008/08/10(日) 20:29:080110デフォルトの名無しさん
2008/08/10(日) 20:43:510111デフォルトの名無しさん
2008/08/10(日) 21:10:24言われた場所を変えてみたらできました!
ありがとうございました!
0112デフォルトの名無しさん
2008/08/10(日) 22:25:330113デフォルトの名無しさん
2008/08/10(日) 22:39:300114デフォルトの名無しさん
2008/08/10(日) 23:52:58あまりしつこいと教えてくれないよ。
プログラマとはそんな性分の奴が多いw
0115デフォルトの名無しさん
2008/08/11(月) 00:29:37ここで聞いても自分で使う暮らすライブラリこりこり作ってる殊勝な人間は少ないから無駄
0116デフォルトの名無しさん
2008/08/11(月) 05:49:570117デフォルトの名無しさん
2008/08/11(月) 06:03:370118デフォルトの名無しさん
2008/08/11(月) 06:18:01どうやったら効率的ですか?
a=123456
とあったら、
b=456
って感じに抜き出したいんですが。
私が考えたのでは、
b=(a%10);
a/=10;
b+=(a%10)*10;
a/=10;
b+=(a%10)*100;
a/=10;
というのなんですが、もっとスマートなやり方ってありますか?
0119デフォルトの名無しさん
2008/08/11(月) 07:54:38じゃいかんのか?
0120デフォルトの名無しさん
2008/08/11(月) 09:35:470121デフォルトの名無しさん
2008/08/11(月) 13:24:21以下のページに記載されている内容と同じ問題が発生します。
http://m--takahashi.com/bbs/pastlog/05700/05696.html
TrackPopupMenu()の前後でSetForegroundWindow()とPostMessage(WM_NULL)を実行しましたが、
効果がありません。どうすればこの問題を回避することができますか?
0122デフォルトの名無しさん
2008/08/11(月) 14:02:21TrackPopupMenuの前でSetForegroundWindowしてる?
どうしてもおかしいままなら、その部分のコード出してごらん。
0123121
2008/08/11(月) 15:17:09以下がフックプロシージャです。
LRESULT CALLBACK MouseProc(int p_iCode,WPARAM p_wParam,LPARAM p_lParam)
{
COPYDATASTRUCT stCopyDataStruct;
MOUSEHOOKSTRUCT *pstMouseHookStruct = (MOUSEHOOKSTRUCT *)p_lParam;
if (p_iCode == HC_ACTION
&& p_wParam == WM_NCRBUTTONUP
&& pstMouseHookStruct->wHitTestCode == HTMAXBUTTON) {
stCopyDataStruct.dwData = 0;
stCopyDataStruct.cbData = sizeof(MOUSEHOOKSTRUCT);
stCopyDataStruct.lpData = pstMouseHookStruct;
SendMessage(g_hWnd,WM_COPYDATA,0,(LPARAM)&stCopyDataStruct);
return TRUE;
}
return CallNextHookEx(g_hHook,p_iCode,p_wParam,p_lParam);
}
0124121
2008/08/11(月) 15:17:43LRESULT CALLBACK WndProc(HWND p_hWnd,UINT p_uiMsg,WPARAM p_wParam,LPARAM p_lParam)
{
COPYDATASTRUCT *pstCopyDataStruct = (COPYDATASTRUCT *)p_lParam;
HMENU hSubMenu; // ポップアップメニューのハンドル
MOUSEHOOKSTRUCT *pstMouseHookStruct = pstCopyDataStruct->lpData;
switch (p_uiMsg) {
case WM_COPYDATA:
hSubMenu = CreatePopupMenu();
AppendMenu(hSubMenu,MF_STRING,0,TEXT("MenuItem"));
SetForegroundWindow(pstMouseHookStruct->hwnd);
TrackPopupMenu(
hSubMenu,TPM_NONOTIFY,
pstMouseHookStruct->pt.x,pstMouseHookStruct->pt.y,
0,p_hWnd,NULL);
PostMessage(pstMouseHookStruct->hwnd,WM_NULL,0,0);
DestroyMenu(hSubMenu);
break;
default:
return DefWindowProc(p_hWnd,p_uiMsg,p_wParam,p_lParam);
break;
}
return 0;
}
0125デフォルトの名無しさん
2008/08/11(月) 15:27:15----------------------------------------------------
ライブラリ
LIBC.LIB シングルスレッド スタティック ライブラリ、リテール版
LIBCMT.LIB マルチスレッド スタティック ライブラリ、リテール版
MSVCRT.LIB MSVCRT.DLL 用インポート ライブラリ、リテール版
----------------------------------------------------
このことから、printfにはスタティックライブラリの版とDLLの版がある
ということが分かります。
そこで質問なのですが、僕が作った"Hello, World"プログラムは
printf関数をスタティックに.exeにリンクしているんでしょうか?
それとも.exeにはprintf関数は含まれていなくて、実行時にprintf関数
を含むDLLがロードされてそれを呼び出しているんでしょうか?
どうやったら確かめることができるのかを含めて教えてください。
0126デフォルトの名無しさん
2008/08/11(月) 15:50:02プロジェクトのプロパティの「C/C++」の「コード生成」の「ランタイム ライブラリ」で指定する。
0127デフォルトの名無しさん
2008/08/11(月) 18:53:08voidだからwhileの条件式に入れれませんでした。
どうすればいいのでしょうか
0129デフォルトの名無しさん
2008/08/12(火) 14:19:03#include <vector>
#include <windows.h>
#include <psapi.h>
#pragma comment(lib, "psapi.lib")
int WorkSize(void){
PROCESS_MEMORY_COUNTERS info;
GetProcessMemoryInfo(GetCurrentProcess(),&info,sizeof info);
return info.WorkingSetSize;
}
using namespace std;
int pm=WorkSize();
void MyFunc(){
vector<string> vec;
for(int i = 0; i < 1000000; i++)
vec.push_back("abcdefghijklmnopqrstuvwxyz");
cout<<WorkSize()-pm<<endl;
}
int main(){
cout<<WorkSize()-pm<<endl;
MyFunc();
cout<<WorkSize()-pm<<endl;
system("pause");
return 0;
}
VC++2008でvector+stringを使ったらメモリ解放しきれてないみたいなのですが、
これはちゃんと解放しきる事は出来ないのでしょうか。
0130デフォルトの名無しさん
2008/08/12(火) 14:21:540131デフォルトの名無しさん
2008/08/12(火) 14:22:53std::vectorは一度確保したメモリはデストラクタを除き
自動的には解放されない。
どうしてもやりたいならswap技法を。
vec.swap(std::vector<std::string> >());
0132デフォルトの名無しさん
2008/08/12(火) 14:24:48もしくは
std::vector<std::string>().swap(vec);
だった
0133デフォルトの名無しさん
2008/08/12(火) 15:37:34CSVといっても、所詮はテキストデータ
"123,456,789"
とういテキストデータで、ファイル化してみれば分かる
拡張子csvだと尚良し
0134デフォルトの名無しさん
2008/08/12(火) 15:48:32俺は趣味でやってるからいいんだけど。
0135デフォルトの名無しさん
2008/08/12(火) 15:53:12それをMyFuncの最後に書いてみたのですが、結果は変わらず…。
使い方が間違っているのでしょうか。
↓メモリ表示結果
0
68435968
7213056
0136デフォルトの名無しさん
2008/08/12(火) 16:11:06ワーキングセットなんてプログラム上の確保した量とはあまり関係がないし。
0137デフォルトの名無しさん
2008/08/12(火) 17:25:11前者はダメだ。
非constな参照引数に一時オブジェクトは渡せない
0138デフォルトの名無しさん
2008/08/12(火) 17:51:38WINAPIでは、戻り値にTRUEかFALSEを多用している様に思うのですが、これは0か0以外の数値を
表しているのでしょうか?
たとえばマウスの左ボタンをクリックして、クリックされたら数字の1、されなかったら0を返す、という事?
いまいちイメージが掴めないのですが、0以外の数字が返された場合はその関数を正常処理する、という感じですか?
0139デフォルトの名無しさん
2008/08/12(火) 18:11:12char[x]が1バイト文字か2バイト文字の前か後ろかを見分ける方法はありますか?
0140デフォルトの名無しさん
2008/08/12(火) 18:27:31あまり気にせず、結果をif文その他の条件判断で使える、位に思っていればいい。
0141デフォルトの名無しさん
2008/08/12(火) 18:29:38そうなんですか
なんかしっくりこなくて戸惑ってました。ありがとうございます
0142デフォルトの名無しさん
2008/08/12(火) 18:30:04MBCSの文字コードによるが、SJISだと前にさかのぼらないと判断できない。
UTF-8だと、1バイト文字か、2バイト以上の1バイト目かそれ以降かの判断はつく。
0143デフォルトの名無しさん
2008/08/12(火) 18:39:10�@
// timer.h
#define IDM_END 1000
#define IDM_OPTION 2000
#define IDC_STATIC 3000
�A// Dialog
OPTDLG DIALOG DISCARDABLE 0, 0, 121, 69
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "オプション"
FONT 9, "MS Pゴシック"
BEGIN
DEFPUSHBUTTON "OK",IDOK,7,38,50,14
PUSHBUTTON "キャンセル",IDCANCEL,61,37,50,14
LTEXT "オブションです。",IDC_STATIC,36,19,48,8
END
の、1000や0, 0, 121, 69といった数字の部分がわかりません・・・。
�@と�Aでは数字の意味が違うと思うのですが、�@の数字は適当に決めていいのでしょうか?
�Aは何か決まりごとが?
0144デフォルトの名無しさん
2008/08/12(火) 18:39:52つまり、コードによるけどふつうの1バイト文字と同じものが2バイトの前か後ろに
出る可能性はあるということですね
2バイト文字に含まれない文字ってないですかね〜
区切り文字として都合のいい文字を探してます
0145デフォルトの名無しさん
2008/08/12(火) 19:52:52なるほどです、ありがとうございました。
0146デフォルトの名無しさん
2008/08/12(火) 21:16:15所謂ShiftJISの2バイト目には、(単独なら)アルファベットと同じ文字コードも来れば1バイト目と同じコードも来る。
従って、前に遡って判定するか素直に頭から判定するか、対策が必要。
尤も、0x40未満のコードはShiftJISに使われないので'/'でも';'でも区切りに使えなくはないと思う。
0147デフォルトの名無しさん
2008/08/12(火) 21:29:371の数字は、同じカテゴリでかぶらないようになってれば適当で良い。
2は、ダイヤログの大きさ。後ろ二つが幅と高さ。適当に変えてみるとわかるよ。
0148デフォルトの名無しさん
2008/08/12(火) 22:31:47タブコードはダメ?
0149デフォルトの名無しさん
2008/08/13(水) 02:03:570x40以下のコードを調べてみようと思います
ありがとうございました
>>148
タブとか改行コードとか使うのが無難ですかねやっぱり
0150デフォルトの名無しさん
2008/08/13(水) 18:12:38ユニコード文字列(*wchar)を出力しようとして、フォーマット文字列に"%S"と
指定したら、実行時にライブラリ内のASSERTで引っかかって止まってしまいます。
TRACE出力にユニコード(漢字)文字列を出力するには、どうすれば良いのでしょうか ?
0151デフォルトの名無しさん
2008/08/13(水) 18:28:49助かります、どうもありがとうございました。早速やってみます。
0152デフォルトの名無しさん
2008/08/14(木) 02:48:16パソコンのキーボードでキーを入力したときに送られるメッセージってなんですか?
ソフトでこのメッセージを送ればキーボートと同じようなものも作れますか?
0153デフォルトの名無しさん
2008/08/14(木) 02:58:31キー入力フックして入力内容をだますってことか?
それともソフトがキーが入力されたように振舞うってことか?
それなら最悪DDKとかめんどくさいのに手を出さないとだめかもな
どっちにしても何が言いたいのかよくわからん
エスパーな人よろしく
0154デフォルトの名無しさん
2008/08/14(木) 09:33:08キーを送るのはウィンドウに限ればメッセージ送るだけでいいかもしれない。
0155デフォルトの名無しさん
2008/08/14(木) 11:44:08MMORPGとかで不正行為する用か、三国人!
0156デフォルトの名無しさん
2008/08/14(木) 16:24:45例えば、1つのアプリケーションなのですが扱う機能が違う為に2つのウィンドウを開いて同時に使う、という場合には
どのようにしたらいいのでしょうか?
同じプロジェクト内ではなく、別々のプロジェクトでソースを書いていかなくてはならないのでしょうか?
またその際は、ハンドルの名前も別々にしなくてはならないのでしょうか?
0157デフォルトの名無しさん
2008/08/14(木) 17:04:09「一つのアプリケーション」が「一つの実行モジュール」を指すなら、逆に寧ろプロジェクトは一つにしないと(一般的には)ダメ。
一つのソースで複数のウィンドウの面倒を見るか、別のソースに分けるかは、使用するライブラリ次第。
# まぁ、普通分けるだろうけれど。
つーか、扱う機能が違うのに「一つのアプリケーション」にする理由がないなら分けた方が使い易くないか?
0158デフォルトの名無しさん
2008/08/14(木) 17:28:32ゲームパッドの入力をキー入力に変えたいのか?
だったら無理せずJoyToKey使え。
0159デフォルトの名無しさん
2008/08/14(木) 20:53:15PICとPCをUSBで接続していて、親指先が+で他4本が−のスイッチで組み合わせによるPCへのキー入力をしたいのですが、
PICまではできてるんですが、PCのキーボードでキーを押した時と同じようにPC上に送出する関数というかメッセージというか流れが知りたいのです。
0160デフォルトの名無しさん
2008/08/14(木) 21:00:26その辺の流れがちょっとわからないのですが、キーダウンメッセージはアクティブなウィンドウに対して受取分岐がソフト上にある場合に機能するもの
なんですよね。キーが押されたメッセージ事態を作り出すにはどうすればいいんでしょうか?
0161デフォルトの名無しさん
2008/08/14(木) 23:47:50どれをアンスコすればいいのかわかりません
C++をアンスコすれば全てアンスコされるのではなく、C++と一緒に複数同時にインスコされてました
それぞれ個別にアンスコしないといけないようです
C++ アンスコでぐぐっても的したページがヒットしません
どれを消すべきかわかる方いましたらお願いします
0162デフォルトの名無しさん
2008/08/14(木) 23:48:280163デフォルトの名無しさん
2008/08/14(木) 23:49:440164デフォルトの名無しさん
2008/08/15(金) 01:35:200165デフォルトの名無しさん
2008/08/15(金) 01:56:310166デフォルトの名無しさん
2008/08/15(金) 07:03:44Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Language Pack - 日本語
Microsoft Visual C++ 2008 Express Edition - 日本語
Microsoft Windows SDK for Visual Studio 2008 Express Tools for .NET Frameword
Microsoft Windows SDK for Visual Studio 2008 Express Tools for Win32
Microsoft Windows SDK for Visual Studio 2008 Headers and Libraies
MSDN Library for Microsoft Visual Studio 2008 Express Edition
Microsoft Silverlight
0167161
2008/08/15(金) 09:12:270168121
2008/08/15(金) 16:16:15以下のページに記載されている方法を試しましたが、効果がありません。
http://homepage3.nifty.com/endou/tips/04/tips39.htm
本体のウィンドウでは、このような現象は起きません。
開発環境はVC++ 2008 Express Editionです。WindowsXP SP3で動作確認しています。
0169デフォルトの名無しさん
2008/08/16(土) 13:39:15そこで質問なのですが、VisualStudio2008にはEmacsのようにtabキーを押したときに必要なだけ字下げする機能がありますか?
0170デフォルトの名無しさん
2008/08/16(土) 20:18:080171デフォルトの名無しさん
2008/08/16(土) 20:22:56とりあえずキーバインド設定は変更したのか?
0172デフォルトの名無しさん
2008/08/16(土) 20:48:58std::cout << std::toupper('a') << '\n';
std::cout << toupper('a') << '\n';
この二つは何か違うのでしょうか?
上のやつは #include <cctype> しないといけないようだが・・・
0173169
2008/08/16(土) 21:20:11どうもありがとうございました。
0174169
2008/08/16(土) 22:53:11データの保存など他のキーの設定もEmacsのものになってしまいました。
インデントだけをEmacsのものにする方法はありますか?
0175デフォルトの名無しさん
2008/08/17(日) 02:19:20コマンド検索のとこに「インデント」っていれて
適当なコマンドと設定を入れ替えろ
あと、プログラマ志望なら
今のうちにEmacs操作覚えた方が良いぞ、楽だから
vi派って訳じゃないんだろ
0176デフォルトの名無しさん
2008/08/17(日) 02:51:420177デフォルトの名無しさん
2008/08/17(日) 04:41:460178デフォルトの名無しさん
2008/08/17(日) 06:58:46Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)をダウンロードしてきて
インストールしたのですが、インストールディレクトリが”一番空き容量が多いドライブの直下”に
インストールされてしまいます。これは仕様なんでしょうか?
0179デフォルトの名無しさん
2008/08/17(日) 10:39:000180デフォルトの名無しさん
2008/08/17(日) 11:17:04一時ファイルのようで、展開されたファイルは削除しても問題ないっぽいです。
お騒がせしました
0181デフォルトの名無しさん
2008/08/17(日) 13:53:54ファイル → 新規作成 → プロジェクト → Win32 コンソールアプリケーション
プロジェクト → 新しい項目の追加 → C++ファイル
として、
stdio.hをインクルードして文字列を表示させる簡単なコードを書いて実行したのですが、
コマンドプロントみたいなウィンドウが一瞬開いてすぐに閉じてしまったため
文字列をよく確認出来ませんでした。
どうしたら開いたままにしておけるのでしょうか?
0182デフォルトの名無しさん
2008/08/17(日) 14:31:25どうするんだろ
出力ウィンドウにも何も出ない?
0183デフォルトの名無しさん
2008/08/17(日) 15:16:03っていうのが4行と、
あともう1行、
「プログラム○○はコード0(0×0)で終了しました。」
っていうのが出ます。
コード0っていうのはreturn 0にしたからだと思うんですが…。
0184デフォルトの名無しさん
2008/08/17(日) 15:19:070185デフォルトの名無しさん
2008/08/17(日) 15:35:48同じく初心者で、昨日から始めたんですが
returnの前に、文字を入力する関数を入れることで対処してます。
Cだと
scanf("%d",n);
とかなんですが。
0186185
2008/08/17(日) 15:38:07今見たら
scanf("%d",&n);
でした。もちろん、先にnは宣言するものとして。
でもC++だと入力するための関数違うと読んだ気も。
0187デフォルトの名無しさん
2008/08/17(日) 15:40:480188デフォルトの名無しさん
2008/08/17(日) 15:45:39とりあえず、
・確認したいだけなんだったら、stderrでメッセージ出せる
・あと処理の最後に無限ループ入れる
0189デフォルトの名無しさん
2008/08/17(日) 15:46:25ガチで知らなかったんだがw
0190デフォルトの名無しさん
2008/08/17(日) 15:50:17いかにうまくボケるかを競いあう
ここはそういうスレの一つだと思い込んでいる
0191デフォルトの名無しさん
2008/08/17(日) 16:01:39ガチで知らなかったんだがw
0193デフォルトの名無しさん
2008/08/17(日) 16:42:45PostMessage(hDlg,0x500,123,456);
なぜだ?
0194デフォルトの名無しさん
2008/08/17(日) 16:52:28調子乗んな
0195デフォルトの名無しさん
2008/08/17(日) 20:53:270196デフォルトの名無しさん
2008/08/18(月) 10:52:14getchar()でいいじゃん。わざわざ変数を用意する必要があるscanf()を使うのはナンセンスだ。
>>188
無限ループってあんた、エコじゃないな。
>>181
cmd動かしておいて、コマンドラインから動かすって手もあるよ。
0197デフォルトの名無しさん
2008/08/18(月) 10:58:29まあデバッグ必要ないときはCtrl-F5だが。
0198デフォルトの名無しさん
2008/08/18(月) 17:12:40test.tx は見つかり test.txt は見つかりません。
しかし、_findfirst("tes*.txt", &searchData) で検索した場合には
test.txt も test.txtx も見つかります。
Q1. ドキュメントには書いてないのですが、この関数は拡張子を3文字しか見ないのでしょうか。
Q2. 4文字以上の拡張子に対応したファイル検索関数にはどんなものがありますか。
0199デフォルトの名無しさん
2008/08/18(月) 17:45:36>getchar()でいいじゃん。
あらほんと。今度からこっち使います。
ありがとう。
0200デフォルトの名無しさん
2008/08/18(月) 18:39:010201デフォルトの名無しさん
2008/08/18(月) 20:15:09getchar()で良いでしょ
0202デフォルトの名無しさん
2008/08/18(月) 23:10:13たしかWindowsが隠して格納してる8.3なファイル名がひっかかるんだな。
Short Filenameってやつ。findfirstしてあらためて排除するとか。
0203デフォルトの名無しさん
2008/08/19(火) 02:02:38何か意味があるのですか?
0204デフォルトの名無しさん
2008/08/19(火) 02:21:430205デフォルトの名無しさん
2008/08/19(火) 12:28:520206デフォルトの名無しさん
2008/08/20(水) 05:52:40Eula.1041.txt
globdata.ini
install.exe
install.ini
install.res.1041.dll
VC_RED.cab
VC_RED.MSI
vcredist.bmp
しかも作成日時が2007年11月20日。
二週間ほど前にPC買い替えたばかりだからこの作成日時はおかしいと思う。
調べてたらvisualC++が関係してるっぽい。
これなに?
0207デフォルトの名無しさん
2008/08/20(水) 08:00:590208デフォルトの名無しさん
2008/08/20(水) 09:56:200209デフォルトの名無しさん
2008/08/20(水) 11:36:280210デフォルトの名無しさん
2008/08/20(水) 12:32:562005は初めから入ってたんだけど、これって勝手に更新したりするものなの?
2008なんてインストールした覚えがないし、気味わるいからアンインストールしたいんだけど。。
0211デフォルトの名無しさん
2008/08/20(水) 12:47:25とりあえずそのファイル群は再配布可能なやつだと思うから
なんかのソフトが必要としたんじゃないの?
2008というのは2007/11/20だからそう思ったんだけど。
0212デフォルトの名無しさん
2008/08/20(水) 13:03:48一時ファイルだけ削除しておく。
>>207-210サンクス
0213デフォルトの名無しさん
2008/08/20(水) 13:03:53VisualStudioプリインストールなんてどこで売ってるの??
> これって勝手に更新したりするものなの?
しない。
0214デフォルトの名無しさん
2008/08/20(水) 13:06:36visualC++2005Redistributableというのが初めからはいってた。
0215デフォルトの名無しさん
2008/08/20(水) 13:12:580216デフォルトの名無しさん
2008/08/20(水) 19:01:210217デフォルトの名無しさん
2008/08/20(水) 19:23:170218デフォルトの名無しさん
2008/08/20(水) 20:57:37よくバグってメモリリークしたり、既に解放済みのアドレスを解放したりしてます。
そういうのって、PCに悪影響は無いんでしょうか?
0219デフォルトの名無しさん
2008/08/20(水) 21:11:170220デフォルトの名無しさん
2008/08/20(水) 21:28:19最初から入ってたのは2005。
今日気づいたら2008がインストールされてた。
まぁ気にしないことにする。
0221デフォルトの名無しさん
2008/08/20(水) 21:35:34BUFFALOの
ttp://buffalo.jp/products/catalog/multimedia/chideji/streamtest.html
をインストールしたときに一緒についてきたみたい
0222デフォルトの名無しさん
2008/08/20(水) 22:02:47気付いたらってどういう意味だおいw
0223デフォルトの名無しさん
2008/08/20(水) 23:41:28もう放っとこうぜ
>>218
OSがうまくやってくれる、たぶん
0224デフォルトの名無しさん
2008/08/21(木) 13:36:39MFCを勉強しようと思って
http://www.kumei.ne.jp/c_lang/mfc/mfc_01.htm
のページのコードをコンパイルしてみて
うごいたのですが
プロジェクトの設定は「MFCを使用しない」に
なっていても問題ないみたいなのです。
MFCを使っているのに「MFCを使用しない」でよいのでしょうか?
0225デフォルトの名無しさん
2008/08/21(木) 13:48:07そんな設定どこにあった?
基本的にMFCを使うかどうかはヘッダのincludeとリンクするライブラリで決まる。
0226デフォルトの名無しさん
2008/08/21(木) 14:05:37なるほど。MFCを使用するかしないかを変更することによって
リンクするライブラリやコード生成のオプションが変わるみたいです。
なのでMFCを使用するかしないかの設定はあくまで
テンプレートということですね。
やっぱウィザードに頼っているとだめっすね。
0227デフォルトの名無しさん
2008/08/21(木) 14:16:49なんかMFCマスターした気がする
0228デフォルトの名無しさん
2008/08/21(木) 14:19:550229デフォルトの名無しさん
2008/08/21(木) 14:26:170230デフォルトの名無しさん
2008/08/21(木) 14:38:500231デフォルトの名無しさん
2008/08/21(木) 14:57:30にCStringはマルチスレッドに対応してないって書いてあるんだけど
マジで?
やべーじゃん。
0232デフォルトの名無しさん
2008/08/21(木) 15:43:32>スレッドセーフである為classやtypedef内の変数に宣言するのに向いています。
>マルチスレッドで文字列を扱う際にはstring型かwstring型を使いましょう。
大嘘やん。標準にはスレッドの概念が無いし、スレッドセーフかどうかは実装依存になる。
CStringも使い方さえ間違わなきゃマルチスレッドで使える。
ttp://msdn.microsoft.com/ja-jp/library/h14y172e.aspx
0233デフォルトの名無しさん
2008/08/21(木) 15:47:260234デフォルトの名無しさん
2008/08/21(木) 15:48:29http://msdn.microsoft.com/ja-jp/library/c9ceah3b.aspx
ちゃんとやらないとだめだという点でCStringと互角。
0235デフォルトの名無しさん
2008/08/21(木) 19:32:26char[]にintやfloat等の数値を設定したり取得するにはどうすればいいですか?
0236デフォルトの名無しさん
2008/08/21(木) 19:39:53目的による。
0237デフォルトの名無しさん
2008/08/21(木) 20:50:240238デフォルトの名無しさん
2008/08/21(木) 21:13:580239デフォルトの名無しさん
2008/08/21(木) 23:59:01int i=1234;
char ic[50];
ic = (char[50])i;
こうですか?
キャストできませんでした
0240デフォルトの名無しさん
2008/08/22(金) 00:28:120241デフォルトの名無しさん
2008/08/22(金) 01:03:460242デフォルトの名無しさん
2008/08/22(金) 09:30:000243デフォルトの名無しさん
2008/08/22(金) 09:46:01あえてそういう風にキャストしたいのなら、例えば・・・
*(int *)&ic[0] = i;
とか
0244デフォルトの名無しさん
2008/08/22(金) 10:00:390245デフォルトの名無しさん
2008/08/22(金) 10:10:370246デフォルトの名無しさん
2008/08/22(金) 18:43:37ネットでデータ送るときに、パケットサイズを固定長にしたいときとか
0247デフォルトの名無しさん
2008/08/22(金) 18:54:16ありがとうございます。 下記のようにしたところ
int i=256;
char ic[50];
*(int *)&ic[0] = i;
char[]の最初の4バイトにそれらしい値が入るようになりました
int=32bit char=8bit なので期待通りの結果が得られてる ような気がします
これはcharの参照をintのポインタのポインタにキャストしてるんでしょうか?
char[]に入れることはできましたがintに戻すにはどうすればいいかわからんので
もっと勉強が必要なようです ありがとうございました
0248デフォルトの名無しさん
2008/08/24(日) 09:34:37そこで質問なのですがVISUAL STADIOの学生用の安いものとそうでないものとの間で機能に差はありますか?
0249デフォルトの名無しさん
2008/08/24(日) 09:46:05C++の勉強よりも、英語を始めとした一般常識を身につけることをこそ、お勧めします。
0250デフォルトの名無しさん
2008/08/24(日) 14:12:06仕事してるんじゃないのか?
なで学生用なんだ
経費で落とせないのか?
0251デフォルトの名無しさん
2008/08/24(日) 14:29:100252デフォルトの名無しさん
2008/08/24(日) 15:53:050253デフォルトの名無しさん
2008/08/24(日) 16:01:340254248
2008/08/24(日) 19:08:08あくまで個人で勉強したいので…
0255デフォルトの名無しさん
2008/08/24(日) 20:09:080256デフォルトの名無しさん
2008/08/24(日) 21:16:22Visual Studio 2008のAcademicはProfessionalと同じ。
だから、同じのが欲しければProfessionalを買え。
違うのがほしければそれ以外を選べ。
0257デフォルトの名無しさん
2008/08/24(日) 22:54:44と一言書いてやれば済むのに
おまえらほんとに卑屈だな
0259デフォルトの名無しさん
2008/08/25(月) 12:12:39www.geocities.jp/ky_webid/win32c/010.html
このページの、
・最初にクリックした点から、次にクリックした点までを結ぶ直線を描くプログラムを作って下さい。
という例題は、どの様に書いたらいいのでしょうか?
if文を使うのかと思ったのですが、頭が悪くてswitch文とうまくあわせられません・・・
大変申し訳ありませんが、どなたか教えてもらえないでしょうか?もうだめぽ・・・><
0260デフォルトの名無しさん
2008/08/25(月) 12:17:57そのページを読んでいるのだから直線を描画するプログラムは作れるよね?
そのページの前提としてクリックした座標を取得するプログラムも作れるよね?
後は組み合わせるだけだから頭の良し悪しは関係ない。
0261デフォルトの名無しさん
2008/08/26(火) 00:47:460262デフォルトの名無しさん
2008/08/26(火) 00:52:05構造体のデータを簡単に表示とかいう拡張機能
できたりしていない? マネージドじゃない状態で。
PHPとかPerlとかやってるとさ、print_r(オブジェクト)で
オブジェクトのプロパティとか値がずらずら表示されて便利なんだよね。
標準のC++にないのはわかる。デバッグ用にそういう拡張
されてないかなぁと。
デバッガみれ? それしかないかな?
0263デフォルトの名無しさん
2008/08/26(火) 01:05:18ってSteve Yeggeが要ってた。
pdb漁ってBinaryHackするとかしか思い浮かばないヨ
0264デフォルトの名無しさん
2008/08/26(火) 01:09:16デヴァグ中なら、ローカル変数とかそういうの。
それ以外は知らん。
0265デフォルトの名無しさん
2008/08/26(火) 09:41:11そのDLLに対応したインポートライブラリとリンクするか
実行時にAPIでロードして呼び出す。
インポートライブラリはDLL作成時にできるが、
DLLからLIB.EXE等を使って作ることもできる。
0266259
2008/08/26(火) 14:17:55上記みたいな感じでいけるかと思ったんですが、error C2196: case の値 '513' は既に使用されています。
と出て動きません・・・ボタンクリックの1回目と2回目を分けるには、どげんしたらいいんでしょうか・・・
プログラム分けてコピペさせていただきます・・・
>>260
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
HDC hDC;
PAINTSTRUCT ps;
int x[2] = {0,0};
int y[2] = {0,0};
switch(msg)
{
case WM_LBUTTONDOWN:
x[0] = LOWORD(lp);
y[0] = HIWORD(lp);
return 0;
case WM_LBUTTONDOWN:
x[1] = LOWORD(lp);
y[1] = HIWORD(lp);
return 0;
0267259
2008/08/26(火) 14:20:35case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
MoveToEx(hDC, x[0],y[0],NULL);
LineTo(hDC, x[1], y[1]);
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, msg, wp, lp);
}
すんません下記みたいな感じ、でした・・
0268デフォルトの名無しさん
2008/08/26(火) 14:36:45どっちかはWM_LBUTTONUPの間違いだなんてことない?
0269デフォルトの名無しさん
2008/08/26(火) 14:37:46case WM_LBUTTONDOWNが2個あったら、怒られるだろう
あと、それだとx[2], y[2]が、WndProc()抜けると消滅する
static int x[2] = {0,0};
static int y[2] = {0,0};
static int index = 0;
switch(msg)
{
case WM_LBUTTONDOWN:
x[index] = LOWORD(lp);
y[index] = HIWORD(lp);
index = index ? 0 : 1;
return 0;
WM_PAINTで、ボタンクリックが2回目以降のみ描画する・・・
とか、詰めなきゃいけないところは、まだあるけど
とりあえず、こんな感じでどう?
0270デフォルトの名無しさん
2008/08/26(火) 14:41:000271デフォルトの名無しさん
2008/08/26(火) 14:41:390272デフォルトの名無しさん
2008/08/27(水) 16:34:080273デフォルトの名無しさん
2008/08/27(水) 16:38:150274デフォルトの名無しさん
2008/08/27(水) 17:22:17変数の値を他のフォームに渡すことは可能ですか?
0275デフォルトの名無しさん
2008/08/27(水) 17:46:460276デフォルトの名無しさん
2008/08/27(水) 23:03:05コンパイル時にkernel32.libが開けないと言われます
Visual C++ 2008 EEを標準でインストールした場合のkernel32.libの場所はどこでしょうか
C:\Program Files\Microsoft Visual Studio 9.0\VC\lib 配下あたりだと思ったのですが
そのあたり検索しても見つかりません
0277デフォルトの名無しさん
2008/08/27(水) 23:15:110279デフォルトの名無しさん
2008/08/28(木) 08:45:12どうやって渡すのか教えて下さい
0280デフォルトの名無しさん
2008/08/28(木) 09:09:180281デフォルトの名無しさん
2008/08/28(木) 09:30:15(はい、いいえ、どちらでもない)を質問のフォームとは別の
フォームに出力したいと思っています。フォーム1の質問で集めた回答を
それぞれの変数に入れ、その値をフォームに2にも引き継ぎ、変数にはフォーム1と
フォーム2の値が入っているようにしたいのですが・・・教えていただけませんか?
0282デフォルトの名無しさん
2008/08/28(木) 09:43:53普通のことなのに、何がひっかかってるのかがわからん。
0283デフォルトの名無しさん
2008/08/28(木) 10:23:19プログラミングはC言語を2ヶ月ほどしか学んでいなく、
Visual C++ 2008 EEも使用して2日しか経過していない
ので分かりませんでした。publicやメソッドの意味を
調べようと思います。
0284デフォルトの名無しさん
2008/08/28(木) 11:14:08つか.NET使うんならC#の方がいいぞ。
0285デフォルトの名無しさん
2008/08/28(木) 18:55:08C++.net好んでつかってるやついるの?
いたら何がいいのか教えて欲しいくらい
C++のメリットドブにすててまで.netする意味がわからない
0286デフォルトの名無しさん
2008/08/28(木) 18:58:410287デフォルトの名無しさん
2008/08/28(木) 19:04:27283のようなやつは時々現れるが、
単にC++→フォームアプリケーションでプロジェクト作っただけで、
好みではなく気付いていないだけだと思う。
0288デフォルトの名無しさん
2008/08/28(木) 19:42:190289デフォルトの名無しさん
2008/08/28(木) 19:52:23C++習熟してて
なおかつC#とかで.netつかってるなら
本当に最強かもしれんね
>>288
あとランタイム配布とかめんどくさいの考えると
本気で配布するソフトはあまりC#つかわないのよね
XNAのやる気のなさに絶望して近頃C++しかつかってない
0290デフォルトの名無しさん
2008/08/28(木) 19:53:240291デフォルトの名無しさん
2008/08/28(木) 19:57:080292デフォルトの名無しさん
2008/08/28(木) 21:27:59Debugging information for 'regsvr32.exe' cannot be found or does not match. Symbols not loaded.
Do you want to continue debugging ?
というメッセージが出ます。(開発環境は英語版のVC++9です)
Yesを選択しても、
To register a module, you must provide a binary name.
という メッセージが出て結局失敗します。
このエラーメッセージの意味は、regsvr32.exeを引数なしで呼び出したためだ
というのは調べてわかったのですが、このあとどうすればよいのかよくわかりません。
ツールの中などで、regsvr32.exeを削除するような操作が必要なのでしょうか?
regsvr32.exeはOLEコントロールを登録/解除するために使うらしい、というのも
書いてあったのですが、まったく意味がわかってません。
どうかよろしくお願いします。
0293デフォルトの名無しさん
2008/08/28(木) 22:42:44マイクロソフトの中の人ですか?
0294デフォルトの名無しさん
2008/08/28(木) 23:05:59結構大きなフリーのライブラリのソースをダウンロードしてきてコンパイルしたのですが、
コンパイル終わって実行する前に、登録するために使うプログラムを選択しろみたいな
メッセージが出てきて、適当にデフォルトのを選択しておいたところ、292みたいな状態になって
しまいました。
ずっとLinux使ってたので、もしかしてすごく見当はずれな質問してるかもしれませんが、
いろいろ検索してもなにも引っかからなかったし、どうすればよいか、ヒントでもよいので
ください。
0295デフォルトの名無しさん
2008/08/29(金) 03:44:16for( int i=0; i<26; i++ ){
〜何か操作〜
func( s );
}
こんな感じで、func()に、「A〜Z」まで文字列を渡したいのですが、どんな操作をするとスマートに出来ますでしょうか?
0296デフォルトの名無しさん
2008/08/29(金) 03:56:27iの使い道がほかになければ、こういうループにするという手もある。
マジックナンバー26が消えるのがいい(もっとも、'Z' - 'A'でも消せるけど)。
for ( wchar_t i = L'A'; i<='Z'; i++ ) {
func( i.ToString() );
}
0297295
2008/08/29(金) 04:19:47ありがとうございます。
0298デフォルトの名無しさん
2008/08/29(金) 11:04:43>ライブラリとかじゃない、普通のプログラムをデバッグしようとしているのですが、
>>294
>結構大きなフリーのライブラリのソースをダウンロードしてきてコンパイルしたのですが、
どっちなんだ。
0299デフォルトの名無しさん
2008/08/29(金) 18:20:27プロパティからデフォルトボタンに設定できるけど
CreateWindowで配置したボタンを
デフォルトボタンにするにはどうしたらいいですか?
0300デフォルトの名無しさん
2008/08/29(金) 18:30:13作るときなら、BS_DEFPUSHBUTTON
0301デフォルトの名無しさん
2008/08/29(金) 18:43:58作ったあとに
デフォルトボタンにしたり、しなかったり したいです
0302デフォルトの名無しさん
2008/08/29(金) 19:14:06どうなるかはわからん、他のボタンのDEFも外さないと無理かも?
見た目はDM_SETDEFID送ればいいみたいだけど。
0303デフォルトの名無しさん
2008/08/29(金) 19:18:010304デフォルトの名無しさん
2008/08/29(金) 19:28:50すいません。
結構大きなライブラリのソースをダウンロードしてきて、それをコンパイルした後、付属の
サンプルコード(こいつは結構小さい普通のプログラム)をコンパイルしようとしたんです。
なんでどっちも本当です。
結局まだわからないので、スタティックライブラリを自分で作って勉強してみてます。
でもregsvr32.exeなんて使わないっぽい。
スタティックなライブラリをデバックするときって、regsvr32.exeを使いますか?
手順としてはこんな感じ。
(1)ライブラリ作成(名前はStaticLibrary.libとします)
(2)regsvr32.exe \i StaticLibrary.lib
(3)このライブラリをつかうサンプルプログラムを作成してデバッグ。
0305デフォルトの名無しさん
2008/08/29(金) 19:32:48regsver32の対象になるのはDLLだけ。
0306デフォルトの名無しさん
2008/08/29(金) 20:29:23exeのプロジェクトのプロパティの「デバッグ」の「コマンド」がregsvr32になってるのかな。
空にしてok押してみて。”$(TargetPath)”が入ると思う。
新しいプロジェクトを作るときのウィザードで選択を間違えたのかな。
0307デフォルトの名無しさん
2008/08/30(土) 01:12:35ありがとうございます。おっしゃるとおりになってました。
そこを空にして、追加のインクルードパスにboostを追加して、F7でビルドするとビルドできました。
その後、同じソリューションの中のほかのサンプルプログラムをコンパイルするごとに追加の
インクルードパスにboostを追加する、という作業が必要だったのですが、これはしょうがないですか?
どこかで設定すれば同じソリューション内なら一度の追加ですむとか、そういうことはできないですか?
0308デフォルトの名無しさん
2008/08/30(土) 12:47:12デバッガで全て表示させるにはどうしたらよいのでしょうか?
STLのstringやvectorだと上手く表示されているのですが、何かいい方法があるのしょうか?
どなたか教えて下さい。
0309デフォルトの名無しさん
2008/08/30(土) 15:57:210310デフォルトの名無しさん
2008/08/31(日) 13:09:13最初何のことだか分からなかったのですが、ググって見てようやく分かりました。
御回答どうもありがとうございました。
一応他の方の参考になるかもしれないのでリンク張っておきます。
ttp://support.microsoft.com/kb/198953/ja
他にもautoexp.datを使う方法もあるみたいですね。
ttp://www.cycleof5th.com/tips/index.php?date=2007-05-13
ttp://blogs.wankuma.com/melt/archive/2007/10/01/98927.aspx
0311デフォルトの名無しさん
2008/08/31(日) 17:21:03新規作成-プロジェクトの
「VisualC++」の「空のプロジェクト」実行で
ソース、リソース、ヘッダーファイルが出なく(組み込まれなく?)なりました
どこかさわってしまったらしく元に戻せません
超初歩的だと思いますが宜しくお願いします。
0312デフォルトの名無しさん
2008/08/31(日) 17:41:320313311
2008/08/31(日) 18:34:37この動画の1’28”くらいのところなんですが
空のプロジェクトなのに3ファイルが組み込まれてるんです
なにか設定を変えているとかでしょうか?
0314311
2008/08/31(日) 18:43:15他の説明動画で解決できました。
前の動画は編集されてたのかな?
0315デフォルトの名無しさん
2008/08/31(日) 19:11:35ホントになんでもあるなw
0316299
2008/08/31(日) 23:41:36BS_DEFPUSHBUTTON も設定しましたがリターンを押しても反応しません
>>302
DM_SETDEFIDを
SendMessage(ウインドウのハンドル, DM_SETDEFID, (WPARAM)ボタンのID, (LPARAM)0 );
で送ってもデフォルトになってないような?
>>303
SendMessage(ウインドウのハンドル,BM_SETSTYLE, (WPARAM)BS_DEFPUSHBUTTON,(LPARAM)0);
にしてみましたがやはりだめです
配置してるボタンはウインドウ上に1つだけです
ひょっとしてデフォルトボタンはダイアログでしか設定できないのでしょうか?
0317デフォルトの名無しさん
2008/08/31(日) 23:45:49ボタンのIDをIDOKにして、メッセージループにIsDlgMessageを組み込むじゃなかったっけ。
0318デフォルトの名無しさん
2008/09/01(月) 00:55:14ある関数を実行したいんですが
ダイアログのときはデフォルトボタンで代用してました
VBとかでいうところのkeydownイベントのときにキーコードがリターンか調べて
リターンなら処理をする みたいな挙動がほしいです
IsDlgMessageでググったら日本語のページがひとつもないといふ
0319デフォルトの名無しさん
2008/09/01(月) 01:55:100320デフォルトの名無しさん
2008/09/01(月) 04:19:22そして、
本と同じで、こういう動画も初学者向であふれるんだろなw
0321デフォルトの名無しさん
2008/09/01(月) 17:48:26ググったけどよくわからんかった
モードレスダイアログにしてIDOK受けるみたいな感じに解釈したんだけど
コントロールのサブクラス化のほうが理解しやすかったんでそっちにしました
ありがとうございました
0322デフォルトの名無しさん
2008/09/01(月) 19:49:31これからVisual C++ 6.0を勉強をしようと思っているんですが、
初心者向きのわかりやすい参考書があれば教えて下さい。
よろしくお願いします。
0323デフォルトの名無しさん
2008/09/01(月) 20:12:44本題(参考書の紹介)にレスできなくてごめん。
これから勉強するのに、なんでvc6なのだ?
vc6はc++の規格が固まる前のものでオススメでない。
vc9(vs2008)でいいじゃないか。
0324デフォルトの名無しさん
2008/09/01(月) 21:15:530325デフォルトの名無しさん
2008/09/01(月) 21:21:02そうなんですか?
しかし会社で使用する開発環境が6.0らしいんですが・・・
vs2008はOSが2000なのでインストール出来ませんが、
vs2005ならインストールしています。
vs2005を勉強すればvs6.0にも応用出来るのでしょうか?
そういうことでしたらvs2005で勉強してみます。
0326デフォルトの名無しさん
2008/09/01(月) 21:24:290327デフォルトの名無しさん
2008/09/01(月) 21:25:370328デフォルトの名無しさん
2008/09/01(月) 21:33:29やはり6.0を勉強します。
話は戻りますが、初心者向きのわかりやすい参考書が
あれば教えて下さい。
0329デフォルトの名無しさん
2008/09/01(月) 21:40:02勉強してから出直して来てください。
0330デフォルトの名無しさん
2008/09/01(月) 21:44:23でも、Cがある程度使えなかったらわかりません
>>329
VC++とC++ってそこまで違うものですか?
0331デフォルトの名無しさん
2008/09/01(月) 21:53:29VC++はマイクロソフト社製の開発環境
0332デフォルトの名無しさん
2008/09/01(月) 21:59:50VC++はVSのC++コンパイラ群のことだと思ってた
0333デフォルトの名無しさん
2008/09/01(月) 22:08:300334デフォルトの名無しさん
2008/09/01(月) 22:12:31ていうかどこで聞けばいいですか?
0335デフォルトの名無しさん
2008/09/01(月) 22:19:350336デフォルトの名無しさん
2008/09/01(月) 22:59:15いやまあその理解でもあまり困らないと思う。
0337デフォルトの名無しさん
2008/09/01(月) 23:25:100338デフォルトの名無しさん
2008/09/02(火) 00:11:16MFCだったら標準口座MFC6.0(シルト) C++のクラスぐらいまで知っている前提
0339デフォルトの名無しさん
2008/09/02(火) 07:41:320340デフォルトの名無しさん
2008/09/04(木) 01:35:06そこでヘッダ宣言時に"_declspec(selectany)"で書くと、リンカエラーもなくビルドできます。
この"_declspec(selectany)"とは、どういったものなのでしょうか?
0341デフォルトの名無しさん
2008/09/04(木) 01:52:49その通りの効果。リンク時に重複した定義を許し、1つにまとめる。
http://msdn.microsoft.com/en-us/library/5tkz6s71.aspx
0342デフォルトの名無しさん
2008/09/04(木) 21:03:54再描画が必要な領域で条件分岐して、
0343デフォルトの名無しさん
2008/09/04(木) 21:06:21WM_PAINTメッセージの処理で、クライアント領域の左側を白、右側を黒に塗り潰すとして、
再描画が必要な領域で条件分岐して、白黒それぞれ描画するか判断するのか、
描画が必要ない領域を塗り潰しても、結局システムは何もしないと思って
両方とりあえず描画するのか、どちらが一般的なんでしょうか
0344デフォルトの名無しさん
2008/09/04(木) 21:55:550345デフォルトの名無しさん
2008/09/05(金) 13:16:31クリッピングは速度のためにある
0346デフォルトの名無しさん
2008/09/06(土) 10:23:30LINK : fatal error LNK1181: 入力ファイル 'object\library.obj' を開けません。
というエラーが出るのですがlibrary.objを検索してもHDにはありませんし、
解決するようなサイトが見つかりませんでした。
なにか解決方法ありましたらお願いします。
環境はVisualC++2008 Expressで、コードはチュートリアル用にダウンロードしたもの。
元のコードはVisualC++6で書かれたようです。
0347デフォルトの名無しさん
2008/09/06(土) 10:40:550348デフォルトの名無しさん
2008/09/06(土) 11:08:180349デフォルトの名無しさん
2008/09/07(日) 21:02:290350デフォルトの名無しさん
2008/09/07(日) 21:07:28http://d.hatena.ne.jp/keyword/%A5%B0%A5%B0%A5%EC%A5%AB%A5%B9
0351デフォルトの名無しさん
2008/09/07(日) 21:11:230352デフォルトの名無しさん
2008/09/07(日) 23:33:381>cl : コマンド ライン error D8045 : C ファイル '.\問題.c' を /clr オプションと共にコンパイルできません
というエラーが出てコンパイルが完了しません。どうしたらよいでしょうか?
0353デフォルトの名無しさん
2008/09/07(日) 23:48:54CLR選んだらCは使えない
0354デフォルトの名無しさん
2008/09/08(月) 00:02:52ありがとうございます。
しかし今度は
「プリコンパイル ヘッダー ファイルが旧バージョンのコンパイラで作成されています。また、C++ のプリコンパイル済みヘッダー ファイルを C で使用しています (その逆も考えられます)。」
というエラーがありました。
0355デフォルトの名無しさん
2008/09/08(月) 00:10:12空のプロジェクト作って追加するのがいいと思うけど、
cppのプロジェクト作って追加したのなら、ソリューションエクスプローラーのとこで
該当ファイル右クリックしてプロパティ出して、C/C++のプリコンパイルヘッダーの項目のとこで
プリコンパイル済みヘッダーを使用しない、にする。
あるいはプロジェクト全体でこの設定をしてもいい。
0356デフォルトの名無しさん
2008/09/08(月) 00:24:59ありがとうございます。
何とか上手く行きましたが、最後にscanfの宣言をしてくださいというエラーが出ました。
これはどういうことでしょうか?
0357356
2008/09/08(月) 00:25:560358356
2008/09/08(月) 00:33:44Visual C++2005からの仕様変更が原因だったみたいですね。。
お騒がせしました。長らくのお付き合いありがとうございました
0359デフォルトの名無しさん
2008/09/08(月) 00:34:45詳しくは、そのエラーの行でF1押して出たページの「CRT のセキュリティ強化」を読むといい。
その関数使う事が決まってるなら無視してもいいし、気になるならヘルプに出なくする方法も書いてある。
scanf以外にも、printf系、str〜系で出る。
0360デフォルトの名無しさん
2008/09/08(月) 01:34:31俺はMSと心中するんだと言う気持ちならscanf_sなど_s系が付いた関数を使えば良いよ
0361デフォルトの名無しさん
2008/09/08(月) 10:26:31VC++6.0(MFC)でテキストエディタ作れと言われたのですが、
最初の最初でつまづいてます。
プロジェクト新規作成→MFC→SDIアプリ→→で、初期のスケルトン作成。
その後ですが、IDR_MAINFRAMEのフォームの白い部分(メニューバーを除く全部
の領域)を全体的にテキスト入力欄にするにはどう操作すればいいですか?
ダイアログベースのプログラムならテキストボックス置けばいいだけですが、
SDIアプリケーションの場合はどうするのでしょうか?
0362デフォルトの名無しさん
2008/09/08(月) 10:32:15MFCだといくつかのやり方があって、どういう点を学習してるかによるが、、、
CViewをCEditViewに替えるだけでいけるけど、、、
Editコントロールを貼り付けるのなら、メンバーにCEditでも置いて
ウィンドウのOnCreateで一緒にCreateしてやって、OnSize時に
CEditをクライアントエリアと同じ大きさにしてやればいい。
0363デフォルトの名無しさん
2008/09/08(月) 12:04:29ありがとうございます。
なんとか後者の方法でエディットボックス設置はできました。
あとは
・起動時にウィンドウのクライアント領域と合わせる
・リサイズ時にも合わせる
のようにしたいですが、ウィンドウサイズの初期値設定、クライアント領域の現在値の取得などはどのようにすれば良いですか?
0364デフォルトの名無しさん
2008/09/08(月) 12:10:38WM_SIZEのハンドラ、OnSizeの引数に幅と高さもあるから、それそのまま使えばいい。
起動時にリサイズ(WM?SIZE)も来るから、起動時のことは考えなくてもいい。
0365デフォルトの名無しさん
2008/09/08(月) 16:42:03ありがとうございます。
試行錯誤した結果、やはりCEditViewにすることにしました。
http://www.vcppclub.com/kouza/nextstep1/mdieditor1.html
ここを見たら1行も書かずに、読み込み/保存機能はできてしまったのですが、疑問が。
ファイル読み込みのダイアログを出す→ユーザーが選択したファイルを読み込む→テキストエリアに表示
保存も同様。
これらに必要な処理がどこにも書かれていないような気がするのですが。
調べていた段階で、メンバ関数 OnFileOpen() を作成し、
GetOpenFileName();でダイアログを出し、
CFile型に読み込む手順が必要そうだったのですが、
自動生成されたソースではどこにも書かれていません。
にもかかわらず読み書きできるのが疑問です。
(サイトのサンプルはMDIですが、SDIでもほとんど同じのようです)
0366デフォルトの名無しさん
2008/09/08(月) 17:33:51CWinAppからCDocument、CEditViewの操作はMFCの中に含まれている。
もちろん、自分で変更することも可能。
0367デフォルトの名無しさん
2008/09/08(月) 18:35:500368デフォルトの名無しさん
2008/09/08(月) 21:37:060369デフォルトの名無しさん
2008/09/09(火) 02:47:07デフォルトの表示を変更したいのですがどのようにすればよいのでしょうか?
具体的には改行文字を$にタブ文字を>---という風に変更したいのですが
0370デフォルトの名無しさん
2008/09/09(火) 06:11:230371デフォルトの名無しさん
2008/09/09(火) 10:49:53入力されたものを文字列型にコピーして保存やらなにやらいろいろやりたいのですが。
逆に文字列型に格納された文字列を表示する方法も。
そういったテキストバッファの操作のしかたがいまいち分からないです
0372デフォルトの名無しさん
2008/09/09(火) 11:00:09普通は直接バッファいじらないでメンバ関数使ってアクセスする
0373デフォルトの名無しさん
2008/09/09(火) 11:18:51CEditViewは特殊だからな。GetEditCtrl()でCEditのインスタンスが取れるのでそれを操作すればいい。
0374デフォルトの名無しさん
2008/09/09(火) 11:28:37unsigned int x :1;
} Test;
このようなコードを見かけたのですが、「:1」は何を意味しているのでしょうか。
0375デフォルトの名無しさん
2008/09/09(火) 11:31:25ビットフィールド
0376374
2008/09/09(火) 11:43:070377デフォルトの名無しさん
2008/09/09(火) 13:53:02なるほど。
CEditのメンバ関数見るとそれらしいものがあるようですね。
しかし、GetLine()のように、行ごとに取得してくる関数はあるみたいですが、
「とりあえず改行も含めて全体をCStringにコピー」するようなものは見当たらないです。
全部の行を走査してコピーする部分は自分で作成しないとダメですか?
0378デフォルトの名無しさん
2008/09/09(火) 14:02:47これはCEditでも、CEditViewでも使える。
0379デフォルトの名無しさん
2008/09/09(火) 14:06:23MSDNを見るときは、継承元のクラスのメンバも見よう。
GetWindowText()で取れるんじゃね?
って書いてたら先を越されたw
0380デフォルトの名無しさん
2008/09/09(火) 14:28:49おぉ ありがとうございます!
MSDNの見かたを訓練するようにします。
ところでもうひとつ質問が。
MainFrameのメニュー選択によりそれらの動作をさせたいのですが、
void CMainFrame::On????(){
}
↑ここの記述で、
MainFrameのほうからViewを操作するにはどのようにすれば良いですか?
C(アプリ名)Viewクラスのインスタンス名が分かれば「名前.関数名」のような形
で呼び出せると考えたのですが、
どこにも宣言部分が見当たらないようです。
0381デフォルトの名無しさん
2008/09/09(火) 15:12:49えーと、SDIだったよな?
CFrameWnd::GetActiveView()でどうか。
0382デフォルトの名無しさん
2008/09/09(火) 15:24:53CViewのポインタが帰ってくるようで、継承して作られたC???Viewの関数は使えないようです。
CFrameWnd::GetActiveView()->関数();
このようにしてもビルドが通らないです。
0383デフォルトの名無しさん
2008/09/09(火) 15:32:12GetWindowtext()が見つけられないようだったから、わざわざCFrameWnd::GetActiveView()の
書き方にしたのに、そしたらこれかよ・・・
CなんたらEditView* pView = (CなんたらEditView*)GetActiveView();
でいいだろ、ちょっとは考えろよ。
0384デフォルトの名無しさん
2008/09/09(火) 15:36:110385デフォルトの名無しさん
2008/09/09(火) 19:30:54未熟ですみませぬ・・・
おかげさまで思った通りのものができました。
0386デフォルトの名無しさん
2008/09/10(水) 11:58:44ダイヤログにボタンを新設し、Classウィザードを使ってON_BN_CLICKEDメッセージ関数を使って
ボタンがおされた事はプログラムで取得できるようにできました。
ボタンを何秒間押したかを調べたいのですが、ボタンが離されたメッセージがなく、
どうやって作ったらいいかわかりません。
どのようなメッセージを使えばいいのでしょうか?
よろしくお願いいたします。
0387デフォルトの名無しさん
2008/09/10(水) 12:04:580388デフォルトの名無しさん
2008/09/10(水) 12:32:580389デフォルトの名無しさん
2008/09/10(水) 15:12:46ttp://homepage3.nifty.com/ishidate/
を参考にWindowsフォームアプリケーションのテンプレで作成したのですが、
一度目のビルドは普通に実行されて表示されるものの、少しでも書き換えた後(内容に一切変化がない場合でも)
以降ビルドを行おうとするとexeファイルが見つからないと表示され、エラーが発生します。
CやC++は以前から触れていたのですが、VisualStudioの操作に関しては
いまいち分からないので原因が分かりません。
どなたか分かる方は折られるでしょうか?よろしくお願いします。
0390デフォルトの名無しさん
2008/09/10(水) 15:16:29PCの時計はくるってない?
0391デフォルトの名無しさん
2008/09/10(水) 16:59:390392デフォルトの名無しさん
2008/09/10(水) 18:07:370393391
2008/09/10(水) 19:31:29__declspec(dllexport)
付けて宣言しとけばEXEでビルドしてもエクスポートされるんですね。
0394デフォルトの名無しさん
2008/09/10(水) 19:42:43デバッグでプログラムを実行させると出力欄に、
「'System.NullReferenceException' の初回例外が ImageRecognize.exe で発生しました。」
と表示されるのですが、これがどの行で発生したかを調べるにはどのようにしたらいいでしょうか?
どなたか教えていただけると嬉しいです _ _
0395デフォルトの名無しさん
2008/09/10(水) 19:45:000396394
2008/09/10(水) 19:47:11お騒がせいたしました。
0397デフォルトの名無しさん
2008/09/11(木) 01:08:30親プロセスはWaitForSingleObject(hHandle, 0)を実行して
即終了させようと思っています。(UNIXのデーモンプロセス生成のような感じ)
ここでWaitForSingleObject()のタイムアウト時間を0秒に設定すると
何か問題あるでしょうか?
0398デフォルトの名無しさん
2008/09/11(木) 01:20:130399デフォルトの名無しさん
2008/09/11(木) 01:25:50形式的に入れた方がいいのかと思ったのですが、
もしかして即終了させるならば必要ないですか?
0400デフォルトの名無しさん
2008/09/11(木) 08:08:020401デフォルトの名無しさん
2008/09/11(木) 09:40:54xmlファイルを解析して読み込む/書き込む仕組みを作らなくてはならないのです
が、手探りで困っております。
検索してみると、VC2003以降になればXmldocumentクラスなるものが使えるよう
ですが、
VC6.0ではmsxml.hを使わなくてはならないようです。
これについての資料やサンプルがweb上にあまり無くて困っています。
また、xercesのライブラリを使う手段も打診されているのですが、
これについてはどのようにすれば良いでしょうか?
ダウンロードしても構成ファイルが大量にあり、これらをどう組み込むのが検討
が付きません。
また、VC6用のサンプルのプロジェクトファイルは同梱されていたものの、なぜ
かビルドが通らないようです。
こちらから入手したものです。
http://xerces.apache.org/xerces-c/
次レスに続きます
0402デフォルトの名無しさん
2008/09/11(木) 09:42:05エラー内容
C:\Liblary\xerces-c-src_2_8_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(691)
: error C2039: 'InterlockedCompareExchangePointer' : '`global
namespace'' のメンバではありません。
C:\Liblary\xerces-c-src_2_8_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(691)
: error C2065: 'InterlockedCompareExchangePointer' : 定義されていない識
別子です。
cl.exe の実行エラー
外部のライブラリを使用するプログラムを作ったことが無いので、そういった部
分の基本から教えていただけると幸いです。
0403デフォルトの名無しさん
2008/09/11(木) 09:51:27VC2008とboostいれようぜ。
そしたら簡単。serializationとか
0404デフォルトの名無しさん
2008/09/11(木) 09:55:050405401
2008/09/11(木) 09:57:19業務で、VC6と指定なのです。
0406デフォルトの名無しさん
2008/09/11(木) 10:02:12これ使うとXMLの扱いがとっても簡単になりますね
基本的にはシリアライズしたいクラスのメンバにserialize関数を追加するだけです
http://d.hatena.ne.jp/faith_and_brave/20070809/1186672741
http://d.hatena.ne.jp/cass_src/20070730
0407デフォルトの名無しさん
2008/09/11(木) 10:04:40では、boostをいれれば? コンパイルできるかは知らないけれど。
でも、msxml.hを使うのが普通ですね。標準機能なので。
0408デフォルトの名無しさん
2008/09/11(木) 10:18:04boostを研究してみます。
0409デフォルトの名無しさん
2008/09/11(木) 10:18:40あとはMSのサイトで調べれば完璧じゃないですか?
http://www.utj.co.jp/xml/dev/dom/dxdom1_1.html
http://www.utj.co.jp/XML/DEV/dom/dxdom2_1.html
http://www.sutosoft.com/oldroom/devdiary/20020505.html
http://www.sutosoft.com/oldroom/devdiary/20040307.html
http://hp.vector.co.jp/authors/VA014436/prg_memo/windows/vctips/006.html
http://www.s34.co.jp/cpptechdoc/article/xml/persist/
0410デフォルトの名無しさん
2008/09/11(木) 10:23:01boostが動かせる(コンパイルできる) かどうかのコンパイラ別の対応表がどこかにあったのですが
忘れてしまいました。boostのホームページのどこかにあったはずです。
XMLを扱う簡単さでは、boostの方が上と思いますが
VC6の機能からなるべくはみ出ないようにするには、MSXMLと思います。
0411デフォルトの名無しさん
2008/09/11(木) 11:24:48あきらめてmsxmlのほう使います。
詳しい資料ありがとうございました。
0412デフォルトの名無しさん
2008/09/11(木) 15:42:25MSの機能以外を使って良いなら、いったんVC2008とboostのバイナリパッケージをインストールして
serializationを使ってXML操作DLLやLIBを作成してVC6でそれを利用するという手をある。
上位のライブラリをVC6で使えるかはよくわからないけど、
DLLにしてあればMinGWやBCCやVCで共通に使えるので平気と思う。
0413デフォルトの名無しさん
2008/09/11(木) 15:45:08Visual C++ 7.1 (Visual Studio 2003), 8.0 (Visual Studio 2005), and 9.0 (Visual Studio 2008)
http://www.boostpro.com/products/free
0414デフォルトの名無しさん
2008/09/11(木) 17:15:00このサイトで解説している、以下の部分
http://www.sutosoft.com/oldroom/devdiary/20020505.html
// ●ファイルから読み込む。●
lpXMLDoc->put_async(VARIANT_FALSE);
VARIANT FilePath;
::VariantInit(&FilePath);
FilePath.vt = VT_BSTR;
V_BSTR(&FilePath) = ::SysAllocString(L"test.xml");
VARIANT_BOOL result;
lpXMLDoc->load(FilePath, &result);
::VariantClear(&FilePath);
わざわざファイル名を指定するのにVARIANT型を使うのは何故ですか?
CString型でパス名指定したりして読めれば楽なのですが・・・
実行ファイルと同じフォルダにtest.xmlを置いても、読み込みできていないよう
です。
::VariantInit〜::VariantClearで囲うことの意味、
V_BSTR(&FilePath) と、一見関数に見えるものに代入演算子が付いている意味など、
VARIANT型を扱う処理が全体的に分からず困ってます。
0415デフォルトの名無しさん
2008/09/11(木) 18:00:39Microsoft社が提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。
特定の機能のみを持つプログラム部品を組み合わせることでアプリケーションソフトの開発が容易になる。
この仕様に基づいてデータのやりとりができるプログラム部品のことをCOMコンポーネントと呼ぶ。
COMコンポーネントは開発に使った言語やコンポーネントのある場所などに拠らず、
どの言語からでも、どこからでも利用することができる。
ネットワークを通じて別のコンピュータ上にあるCOMコンポーネントを利用する技術をDCOMと言う。
これらの技術はWindowsだけでなく、UNIXやMac OSにも移植されている。
コンポーネント開発が楽にできるよう改良された次世代のCOM+の開発が進んでおり、
Windows DNAの中核技術として期待されている。
http://bizex.goo.ne.jp/tool/it/8_77/209/
0416デフォルトの名無しさん
2008/09/11(木) 19:01:570417デフォルトの名無しさん
2008/09/11(木) 19:58:310418デフォルトの名無しさん
2008/09/11(木) 23:08:34strが"abcd%EFG"だったときに
%以前の文字を削る(str="EFG"にする)にはどうしたらいいですか?
0419デフォルトの名無しさん
2008/09/11(木) 23:31:26#importでのraw_interface_onlyやめろ。
それを無くすと、高水準なラッパを作ってくれてめちゃくちゃ楽になる。
例えば、loadメソッドならVARIANTやBSTRを使わず文字列を直接渡せるようになる。
0420デフォルトの名無しさん
2008/09/11(木) 23:32:59char * rp = str; // read
char * wp = str; // write
while (rp != '\0') {
0421デフォルトの名無しさん
2008/09/12(金) 11:37:10詳しく教えてください。
#importから、raw_interface_onlyを削除しました。
しかし、あいかわらずloadメソッドではVARIANT型、VARIANT_BOOL型のふたつの
引数が要求されます。
IXMLDOMDocument* を定義してから、インスタンスを生成し、ファイル名を指定
して読み込み、ノードを指定してい読み込んでくるまでの
一連の流れを教えていただけると幸いです。
0422デフォルトの名無しさん
2008/09/12(金) 11:46:140423デフォルトの名無しさん
2008/09/12(金) 11:56:30つ
pDoc->load(_variant_t(L"http://majissuka.com/NewInfo.xml"),
0424デフォルトの名無しさん
2008/09/12(金) 11:59:33file:///C:/windows/test.txt
かな? test.txtでもいいとはおもう。
0425デフォルトの名無しさん
2008/09/12(金) 12:13:02> char str[20]とかいうのがあって
> strが"abcd%EFG"だったときに
> %以前の文字を削る(str="EFG"にする)にはどうしたらいいですか?
>
char *p;
p = strchr(str,'%');
p++;
strcpy(str,p);
0426デフォルトの名無しさん
2008/09/12(金) 12:20:56#include <msxml.h>
#include <comdef.h>
#include <atlbase.h>
int main(){
CoInitialize(NULL);
IXMLDOMDocument* lpXMLDoc;
CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&lpXMLDoc);
// ●ファイルから読み込む。●
VARIANT_BOOL result;
lpXMLDoc->put_async(VARIANT_FALSE);
lpXMLDoc->load(_variant_t(L"test.xml"), &result);
// ●ノード検索●
IXMLDOMNodeList* lpNodeList;
BSTR NodePath = ::SysAllocString(L"Test/Item");
lpXMLDoc->selectNodes(NodePath, &lpNodeList);
::SysFreeString(NodePath);
long lLength;
lpNodeList->get_length(&lLength);
for (int i = 0; i < lLength; i++){
IXMLDOMNode* lpItem;
lpNodeList->get_item(i, &lpItem);
BSTR str;
lpItem->get_text(&str);
USES_CONVERSION; printf("%s\n", W2A(str));
SysFreeString(str);
lpItem->Release();}
lpNodeList->Release();
lpXMLDoc->Release();
CoUninitialize();}
0427デフォルトの名無しさん
2008/09/12(金) 17:59:27ありがとうございます。
やはりうまくビルドできないですが・・・
引き続き試行錯誤しつつ、XML関連のスレのほう除いてみます。
ところで、CEdit型のエディットコントロールの、それ自身のウィンドウ内での座標をゲットおよびセットする関数ってありますか?
(つまり、事後的にプログラム内で任意で位置を変更したい)
SetRect(),GetRect()だと思ったらコレはこのコントロール内での座標のことのようでした。
0428デフォルトの名無しさん
2008/09/12(金) 19:02:06Diskか?
Discか?
0429デフォルトの名無しさん
2008/09/12(金) 19:05:27Diskは磁器媒体
0430デフォルトの名無しさん
2008/09/12(金) 19:13:230431デフォルトの名無しさん
2008/09/12(金) 19:21:35そう言う区分だったのか
ってことはCD/ DVDを「Disk」って書いちまった資料を全部直さないとか・・・
0432デフォルトの名無しさん
2008/09/12(金) 19:26:55Universal Disk Format (ユニバーサルディスクフォーマット、UDF)は光ディスク用のファイルシステムである。
0433デフォルトの名無しさん
2008/09/12(金) 19:46:30>Diskは磁器媒体
MOはどっち?
0434デフォルトの名無しさん
2008/09/12(金) 19:46:43光ディスク 【optical disk】
データの読み書きにレーザー光を利用する記憶媒体のこと。
CDやDVD、PDなどが代表的な光ディスクである。
0435デフォルトの名無しさん
2008/09/12(金) 19:48:37光磁気ディスク 【MO】
読み方 : ひかりじきディスク
別名 : Magneto-Optical disk
0436デフォルトの名無しさん
2008/09/12(金) 20:19:20unsigned char buf[2] ={0x01,0x02};
textBox1->Text = buf[0];
と実行したらエラーがでます。
error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : 1 番目の引数を 'unsigned char' から 'System::String ^' に変換できません。(新しい機能 ; ヘルプを参照)
1> 使用可能なユーザー定義された変換演算子がない、または
1> 演算型のボックス化された形式からターゲット型への標準変換は存在しません
0437デフォルトの名無しさん
2008/09/12(金) 20:24:20unsigned char *buf[2] ={"0x01","0x02"};
textBox1->Text = buf[0];
0438デフォルトの名無しさん
2008/09/12(金) 20:40:21その方法でもエラーがでまます。
error C2440: '初期化中' : 'const char [5]' から 'unsigned char *' に変換できません。
Hexデータをテキストボックスに表示したいだけなのに。難しい
0439デフォルトの名無しさん
2008/09/12(金) 21:14:270440デフォルトの名無しさん
2008/09/12(金) 21:17:46テキストボックスはテキストを表示する所だから
Hexデータは表示できない
0441デフォルトの名無しさん
2008/09/12(金) 22:53:49文字判定でスペースが入力されたら 「空白です」 と表示させたいんですけど、誰かご教授ください
0442デフォルトの名無しさん
2008/09/12(金) 22:57:06製品の登録ってなんですか?
無料ですか?
0443デフォルトの名無しさん
2008/09/12(金) 22:58:380444デフォルトの名無しさん
2008/09/12(金) 23:00:42いくらですか?
0445デフォルトの名無しさん
2008/09/12(金) 23:09:11抜粋
private: System::Void Showbutton_Click(System::Object^ sender, System::EventArgs^ e)
{
array<System::String^>^ Numdata = {L"0x01",L"0x02",L"0x03",L"0x04"};
if(i < Numdata->Length)
this->textBox1->Text = Numdata[i];
else{
i = 0;
this->textBox1->Text = Numdata[i];
}
}
private: System::Void NextShowbutton_Click(System::Object^ sender, System::EventArgs^ e)
{
i++;
}
0446デフォルトの名無しさん
2008/09/12(金) 23:15:48キー入力をチェックしてもいいけど
マウスで入力する場合もありえるから
入力内容が変った時のイベントでやるのが無難
0447デフォルトの名無しさん
2008/09/14(日) 01:09:45String^ folderName;
の ^ ってなに?
0448デフォルトの名無しさん
2008/09/14(日) 01:26:01ハットサイン、或いは山形アクセント記号。
0449デフォルトの名無しさん
2008/09/14(日) 01:30:560450デフォルトの名無しさん
2008/09/14(日) 08:42:37C++を勉強したいならVisual studioのCLRのカテゴリには手を出すな。
0451デフォルトの名無しさん
2008/09/14(日) 10:09:051>.\main.cpp(135) : error C3861: 'MessageBox': 識別子が見つかりませんでした
とエラーが出ます。コードは
if(MessageBox(hWnd,"あ","あ",MB_YESNO) == IDYES)
等で文字セットはマルチバイト文字です。windows.hもインクルードしてあるのですが何がいけないのでしょうか。
VS2008再インストールしても直りません。
0452デフォルトの名無しさん
2008/09/14(日) 10:32:27いらんところいじってるだろ
0453デフォルトの名無しさん
2008/09/14(日) 10:58:110454デフォルトの名無しさん
2008/09/14(日) 11:41:04あの設定によってコンパイルが通らなくなるし。
0455デフォルトの名無しさん
2008/09/14(日) 13:12:520456デフォルトの名無しさん
2008/09/14(日) 13:17:03exeファイルを配布する上で、文字セットの設定が問題になるの?
0457デフォルトの名無しさん
2008/09/14(日) 13:24:35マルチバイト: NT/9x両方で動くけど、NTではAPI内部で変換がかかるのでオーバーヘッド有り。
0458デフォルトの名無しさん
2008/09/14(日) 14:10:02なるほど。参考になります。
文字コードに「設定なし」とあるけどこれは一体?
0459デフォルトの名無しさん
2008/09/14(日) 14:15:190460デフォルトの名無しさん
2008/09/14(日) 14:26:05基本的にはマルチバイトと同じ。
ただ、<tchar.h>の中の一部に、なし/マルチバイト/Unicodeの3つで切り替わるやつが存在する。
例えば_tcscpy→strcpy/_mbscpy/wcscpy。
mbs版は2バイト文字の2バイト目が欠ける事態にならないなどといった効果を持っていることが多い。
>>459
エントリポイントだけはあるが、実装されているのはごく一部の例外的存在。
http://msdn.microsoft.com/en-us/library/ms813063.aspx
0461デフォルトの名無しさん
2008/09/14(日) 14:32:090462デフォルトの名無しさん
2008/09/14(日) 14:49:42正直、文字列は、ワイドかマルチバイトか決めうちにして、それは使わないほうがいいんじゃないかって気がする。
0463デフォルトの名無しさん
2008/09/14(日) 17:39:00マクロ使ってない糞サンプルばらまかれると迷惑する
0464デフォルトの名無しさん
2008/09/14(日) 18:07:04ジェネリックテキストつかってても、ワイド文字版と、マルチバイト版と両方でテストやってるところなんてほとんどないだろうし。
文字列を編集してる処理とか、ちゃんと、マルチバイトでもワイド文字でも動くように意識して書いてなかったりするだろうし。
テスト以前に、コンパイル通すとかもやってないだろうし。
古いコードをあさったら、char *p = _T("・・・・"); みたいのいっぱいあるだろうし。
中途半端に対応しても、どうせ片方でしか動かないコードなら、きめうちのほうが安全だと思われ。
0465デフォルトの名無しさん
2008/09/14(日) 18:58:07特定の環境でしかコンパイルできないサンプルをばらまかれると皆が迷惑する
0466デフォルトの名無しさん
2008/09/14(日) 19:24:420467デフォルトの名無しさん
2008/09/14(日) 19:28:35またまた御冗談を
真面目な話、BCCでもGCCでも<windows.h>が使えるやつならどれでも使える。
<tchar.h>も結構存在するし。
0468デフォルトの名無しさん
2008/09/14(日) 20:36:490469デフォルトの名無しさん
2008/09/14(日) 20:42:290470デフォルトの名無しさん
2008/09/14(日) 20:48:41それはジェネリックテキストを使っても、ぜんぜん解決してない。
0471デフォルトの名無しさん
2008/09/15(月) 06:11:10/// <summary>
///
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public int hoge(int i) { return 0; }
このような機能はC++ではないのでしょうか
クラスやメソッドをオブジェクトブラウザで参照したいのですが,うまくいきません.
どのようにすればいいか教えていただけませんでしょうか.
お願いします.
0472デフォルトの名無しさん
2008/09/15(月) 06:19:510473デフォルトの名無しさん
2008/09/15(月) 09:00:10できるでしょうか?どのようにすればいいですか?
0474デフォルトの名無しさん
2008/09/15(月) 09:15:210475デフォルトの名無しさん
2008/09/15(月) 09:29:190476デフォルトの名無しさん
2008/09/15(月) 09:44:210477デフォルトの名無しさん
2008/09/15(月) 09:52:500478デフォルトの名無しさん
2008/09/15(月) 10:03:22ここにIME関連のapiの一覧があるから
適当なapiの名前でぐぐれば何か見つかる
0479デフォルトの名無しさん
2008/09/15(月) 10:06:300480デフォルトの名無しさん
2008/09/16(火) 18:04:42本格的なゲーム作るわけじゃないんですが、
ある業務用ソフトの画面効果で軽い2D処理が必要になりまして。(スプライトが
使えればいい程度)
ウェブを見た限りではVC6で使う情報はあまり無かったようです。
9.0のSDKと、VC6で使えるようになるという2004 Summer Extrasは入手しました。
ライブラリをインクルードするところから知りたいです。
0481デフォルトの名無しさん
2008/09/16(火) 18:22:45VisualC++ 6.0 MFC
WindowsXP SP3
の環境で作成した、画面をビットマップ保存するプログラムを、
別のPC
VisualC++ 6.0
WindowsXP SP3
の同じ環境で実行すると、作成されたBMP画像が「描画できませんでした」となってしまいます。
この場合、どのようなことが原因だと考えられますでしょうか?
また対応策はあるのでしょうか?
どうかご教授おねがいします。
0482デフォルトの名無しさん
2008/09/16(火) 18:29:520483デフォルトの名無しさん
2008/09/16(火) 18:30:32別のPCで、BMPファイルは何と関連付けされてるの?
ペイント?Windowsのビューア?IE?
対策:「画面をビットマップ保存するプログラム」のソースを見直す
0484デフォルトの名無しさん
2008/09/16(火) 18:42:21作成されたBMP画像が「描画できませんでした」
本当にお前が作ったプログラムか?
ソースコピペしたら動きましたレベルだろ
0485デフォルトの名無しさん
2008/09/16(火) 18:54:08Windowsのビューアです。プログラムを見直したいと思います。
>>484
そうです、申し訳ありません。
ですが、同じ環境のPCなのに失敗するのは何が原因と考えられるのでしょうか?
よろしくお願いします。
0486デフォルトの名無しさん
2008/09/17(水) 00:19:45せめてどこで失敗するのか突き止めろ。
0487デフォルトの名無しさん
2008/09/17(水) 06:44:43モニターのカラーのビット数が違うとか
0488デフォルトの名無しさん
2008/09/17(水) 06:48:41その次はJAVAかな。地味に頑張るお。新兵に激励を頼むお。
0489デフォルトの名無しさん
2008/09/17(水) 07:58:15C#訓練に生き残れたら、プログラムの司祭となる!
サービス残業に命を捧げるTI土方だ!
0490デフォルトの名無しさん
2008/09/17(水) 09:22:37それぞれの環境で両方のビットマップ表示したらわかるだろ
0491デフォルトの名無しさん
2008/09/17(水) 16:09:06clear()をすると、保持してるポインタのさしてるオブジェクトをdeleteしてくれるんでしょうか?
0492デフォルトの名無しさん
2008/09/17(水) 16:44:020493デフォルトの名無しさん
2008/09/17(水) 16:54:08死ねアホ。
0494デフォルトの名無しさん
2008/09/17(水) 16:57:32clear()をすると、保持してるポインタのさしてるオブジェクトをdeleteしてくれるんでしょうか?
0495デフォルトの名無しさん
2008/09/17(水) 17:05:430496デフォルトの名無しさん
2008/09/17(水) 17:07:42boost::ptr_vectorを使うか、boost::smart_ptrでポインタを包む
0497デフォルトの名無しさん
2008/09/17(水) 17:08:260498デフォルトの名無しさん
2008/09/17(水) 17:08:28○boost::shared_ptr
std::auto_ptrはだめです
0499デフォルトの名無しさん
2008/09/17(水) 17:12:02要するに勝手にdeleteまではしてくれないということですね?
boostの使用も検討してみます。ありがとうございました。
0500デフォルトの名無しさん
2008/09/17(水) 17:12:37いちおう関係なくはないけど
0501デフォルトの名無しさん
2008/09/17(水) 17:15:390502デフォルトの名無しさん
2008/09/17(水) 17:31:33痛いな
0503デフォルトの名無しさん
2008/09/17(水) 18:00:340504デフォルトの名無しさん
2008/09/17(水) 18:14:29>502,503
が必死w
0505デフォルトの名無しさん
2008/09/17(水) 18:15:200506デフォルトの名無しさん
2008/09/17(水) 18:28:100507デフォルトの名無しさん
2008/09/17(水) 18:50:45無料でいいのか?とか不安に思った
Visual Studio .NET Professional普通にこっちのがいいかとも思ったけど
Express Editionでも平気ならそっちでいいか
0508デフォルトの名無しさん
2008/09/17(水) 19:19:560509デフォルトの名無しさん
2008/09/17(水) 20:36:02きっとなんとかなる…はず…多分…恐らく…
0510デフォルトの名無しさん
2008/09/17(水) 21:23:22グダグダ言ってる間に使ってみればいいだろ
0511デフォルトの名無しさん
2008/09/17(水) 21:41:18VC++ 2008にSP1当ればboostなくてもstd::tr1::shared_ptrが使える。
0512デフォルトの名無しさん
2008/09/18(木) 18:39:27最大化しないと見られなくなりました。
原因が分からないのでどなたか教えてください
0513デフォルトの名無しさん
2008/09/18(木) 20:22:37必要に応じて適宜、グレー可(クリック不可なようにする)などの変更をする方法教えてください。
0514デフォルトの名無しさん
2008/09/18(木) 21:07:250515デフォルトの名無しさん
2008/09/19(金) 09:06:370516デフォルトの名無しさん
2008/09/19(金) 10:07:070517デフォルトの名無しさん
2008/09/19(金) 14:06:30低スペPCの俺には無理?
0518デフォルトの名無しさん
2008/09/19(金) 14:35:320519デフォルトの名無しさん
2008/09/19(金) 15:15:31コンパイル速度はBCC
0520デフォルトの名無しさん
2008/09/19(金) 15:18:520521481
2008/09/19(金) 17:35:10ビットマップの作成で失敗していると思われます。
プログラムの作成に使用したPCではビットマップ画像のファイルの大きさが2,521KB
に対して、プログラムを移行させたPCではファイルの大きさが1,262KBで作成されてしまいます。
>>487
プログラムを移行させたPCが手元にないのでわかりませんが、調べて同じにしてみたいと思います。
>>490
上にも書いたとおり、ファイルの大きさが違うので作成で失敗していると思われます。
よろしくお願いします。
0522デフォルトの名無しさん
2008/09/19(金) 17:56:20VCスレきたんだからおとなしくVCつかっときな
BCのほうはただでさえ人少ないのに
偏屈なこだわりがある自称玄人ばかりだから
ネットの情報すくないし何を聞くにしても大変
だからといってVCはましなのかというと腐ってるわけだがBCほど腐ってない
0523デフォルトの名無しさん
2008/09/20(土) 16:48:08オートシェイプのような簡単な画面レイアウトソフトを作りたいのですが、
標準のコントロールやCViewクラスの描画メソッドでは、重なりや透過などの指定に限界が出てきてしまうようです。
オブジェクトをドラッグで移動したり拡大縮小したりにも対応させたいので、
ゲームプログラムに近い作り方で各オブジェクトをスプライトとして扱いたいのです。
業務用で使うツールとして、DirectXが動くかどうか怪しい環境でも使うことを想定しているので。
DirectXのAPIを使うことは無しの方向で、いろいろ模索しています。
0524デフォルトの名無しさん
2008/09/20(土) 16:52:360525デフォルトの名無しさん
2008/09/20(土) 16:59:53おまいらSaGa4つくろうぜ!
http://www.geocities.jp/saga4project/
0526デフォルトの名無しさん
2008/09/20(土) 17:12:53VC++が応答なしになってしまってビルドできません。
これはスペックの問題でしょうか?
ちなみに警告やエラーはありません。
0527デフォルトの名無しさん
2008/09/20(土) 17:31:060528デフォルトの名無しさん
2008/09/20(土) 20:25:090529デフォルトの名無しさん
2008/09/20(土) 21:32:17必ずしもDirectXは使ってないね
0530481
2008/09/20(土) 22:24:56>>487さんがおっしゃってたことを試しました。
プログラムに使用したPCのモニターのカラーのビット数を最高(32ビット)から16ビットにして
ビットマップを作成すると、1,262KBの描画できていないビットマップが作成されました。
なので移行したPCもモニターのカラーを最高(32ビット)に変更したいと思います。
ありがとうございました。
0531デフォルトの名無しさん
2008/09/20(土) 22:29:280532523
2008/09/20(土) 23:17:20Bitbltですね。ヒントありがとうございます。
スプライト的な使い方ができる解説やサンプルみたいなのありますか?
>>525のソースは見てみましたが、
できればVC6のプロジェクト形式でのサンプルがあればと。
Bitbltを使えば、CViewクラスのビュー上に描画することが可能なのですか?
0533デフォルトの名無しさん
2008/09/20(土) 23:21:35IDE機能をもたらすアドインはないでしょうか?
例えば、コメント表示(C#ではコメントはXMLで整理されており
コード内のメンバにカーソルをあわせたときや入力補完のときに
情報ウィンドウにコメントが表示されます)や、
コードチェッカ・整形(C#ではresharperというアドインによって
定義されていないメンバの呼び出しに色づけしたり、
メンバ名変更などのリファクタリングができます)
クラス定義のリンク
(既定・継承クラスへのリンクを列挙したり
名前からクラスやメンバを検索したり、
参照へのリンクも標準のgrepみたいな質素なのではなくて、
名前空間・クラス・メンバで階層化されたものがよいです)
こういった定番的な付加機能のアドインを知りたいです。
あとVSのエディタで宣言部分
(例えば「Vector vec;」でVectorの部分)に色づけをすることはできませんか?
0534デフォルトの名無しさん
2008/09/20(土) 23:43:500535533
2008/09/20(土) 23:55:04お気を悪くされたのでしたら申し訳ありません。
でもコピペではないし、
ここはVC++関連について教えて頂けるスレではないのでしょうか?
クレクレばかりではなく普段自分が教えられることは教えていますし、
事前に一応検索もしました。うまく見つけられなかったので
お力を借りたいと思いここに書きました。
0536デフォルトの名無しさん
2008/09/21(日) 00:22:22あと、特定の単語に色をつける機能はある。Userナントカってファイルがどうのこうの、だったが……忘れた。
0537デフォルトの名無しさん
2008/09/21(日) 08:25:41初心者スレで質問してるんだから初心者だよな?
慣れるまでデフォルト、ノーマルで使っとけ
0538533
2008/09/21(日) 19:33:38すみません、C++は初心者ですが必要になったから使うだけなので
ガリガリ書いてマスターする気にはなれません
(デフォでやったからといって上達するわけでもないし)。
なので支援機能は是非欲しいのですが皆さんデフォで使ってるのでしょうか?
.NETと比べるとまるでプレーンテキストを読み書きする感覚です。
初心者スレではなく他のスレに書いたほうがいいのかな?
0539デフォルトの名無しさん
2008/09/21(日) 19:44:470540デフォルトの名無しさん
2008/09/21(日) 20:25:18プログラミング経験は、あまりないです。(PHPを少し扱える程度)
0541デフォルトの名無しさん
2008/09/21(日) 20:34:15的確な表現だと思うのは俺だけか。
ドットネットが部品を組み合わせて使うものなら、C/C++はその部品を自分で作らなくちゃいけないんだよ。
判りやすく言うと、マゾい。作りたいアプリとは関係ないところで躓くことも多いし、
ちょっと間違えただけで簡単にクラッシュする。一昔前ならOSごと落ちる。
はっきりいって、そのような向上心のない態度ではとてもじゃないが使えない。
時間の無駄。断言できる。結果が出せるまで一年くらいかかることは確定的に明らか。
それでもC/C++を使ってる人たちは、そのような強烈なデメリットを承知の上で、
なおあまりあるメリットを見いだしてるから。
部品を自分で作る必要がある、ってのを、どうとらえるか。
それ次第で、C/C++は便利な道具にも、使えないガラクタにもなる。
いいかね?使う方が言語を選ぶんじゃあない、言語が使い手を選ぶんだ。それがC/C++だ。
わかったらドットネッターにもどるんだな。おまえにも かぞくがいるだろう……
0542デフォルトの名無しさん
2008/09/21(日) 20:35:390543デフォルトの名無しさん
2008/09/21(日) 20:36:220544デフォルトの名無しさん
2008/09/21(日) 21:27:48このへんを参考に
http://www.microsoft.com/resources/msdn/en-us/msdntv/episodes/en/20031028LHORNDB/ChrisA-DonB_300K.asx
0545デフォルトの名無しさん
2008/09/21(日) 21:28:39マスターする気がないといったことは、
バリバリやってるマ様には失礼な発言ですみませんでした。
でもそこまでマゾになんなくても、
楽をするのに努力を惜しまないのがマなのでは?
OSSが巷に溢れる昨今に部品を自作する意味は弱いという考えもありますし、
そもそも今回の話題は部品の自作ではなく環境の整備が焦点です。
あんまりにも環境が貧弱でそれが無駄にC++の敷居を上げている
と思ったのです。
以下は質問なのですが
継承クラスを探すのにはgrepでもやってるのでしょうか?
与える引数の型がミスしてるのを脳内チェックかコンパイラしか
見つけられないのでしょうか?
メンバ名の変更は対象以外が置き換わる危険性を孕んでまで全文置換でしょうか?
細かな仕様(例えば参照渡しで事前に値設定が必要なのかなど)
もわかりづらいと思うのですが、いちいちリファレンスを引くのでしょうか?
0546デフォルトの名無しさん
2008/09/21(日) 21:32:51C#のように単純な言語ならではなのですインテリセンスは。
0547デフォルトの名無しさん
2008/09/21(日) 21:40:51インテリセンス(入力補完)はC++でも有効でしょうし複雑さとは
関係がないような気がします。コメント概略が表示されないのは何故…。
0548デフォルトの名無しさん
2008/09/21(日) 21:49:20ありがとうございます!少し道が開けた感じです。
連投すみませんでした。皆様もよりよい環境でプログラミング
できますように。
0549デフォルトの名無しさん
2008/09/22(月) 12:20:400550デフォルトの名無しさん
2008/09/22(月) 18:21:41日本語読まない奴ってどこにでもいるなぁ
0551デフォルトの名無しさん
2008/09/22(月) 18:26:45これは日本語でも英語でも同じw
0552デフォルトの名無しさん
2008/09/22(月) 18:54:560553523,532
2008/09/22(月) 18:56:55画像とそのマスクを用意して透過するぐらいまではなんとかできるようになりました。
今作ってる表示のメインはテキストや図形なので、とりあえずテキストを貼り付けたCDCオブジェクトを用意したいのですが・・・
どのようにしても表示されず困っています。
viewのOnDrawメソッドで、
CDC* spr=new CDC;
spr->CreateCompatibleDC(pDC);
spr->TextOut(0,0,"テスト文字");
pDC->BitBlt( 0, 0, 300, 300, spr, 0, 0, SRCCOPY);
これで何も出ないです。
TextOutではなくDrawTextでやる方法も試みました。
DrawText(spr->m_hDC,"てすともじ",11,temp,DT_CENTER)
こちらも表示されないようです。
画像表示のときは
CDC::SelectObject()
で、対象のCBitMapを指定すれば良かったようですが、
テキストの場合はどう指定すればよいですか?
VC6なので資料やサンプルが少なくて難儀してます・・・
0554デフォルトの名無しさん
2008/09/22(月) 18:58:30PHPを少し扱える程度じゃVCは無理
もうちょっと初心者向けの言語をお勧めします。
0555デフォルトの名無しさん
2008/09/22(月) 18:59:52DCはデフォルトでは1x1のモノクロビットマップが選択されている
そのまま描いたらたぶん、1ドットだけBitBltされてると思うよ、よくみてみ。
通常はイメージに限らず、ビットマップを作成してDCに選択し、そこに書き込んでから
ウィンドウにBitBltする。
0556デフォルトの名無しさん
2008/09/22(月) 19:20:34CBitmapクラスにテキスト(の形)を読み込んで使うということですか?
どのメソッドを使ったら良いか教えてください。
0557デフォルトの名無しさん
2008/09/22(月) 19:29:200558デフォルトの名無しさん
2008/09/22(月) 21:59:360559デフォルトの名無しさん
2008/09/23(火) 00:49:37CBitmap::CreateCompatibleBitmapをやって
553で言うところのsprにSelectObject
あとはspr->TextOut or DrawTextしてpDCへBitBlt
手(CDC)に紙(CBitmap)と活字(CFont)を持って(SelectObject)文字を書く(DrawText)
最初は面倒だけどすぐ慣れるよ。
0560デフォルトの名無しさん
2008/09/23(火) 13:30:31DCにつながってるデバイスってディスプレイだったりプリンターだったりするじゃない?
そういうデバイスを指定しないで作ったDCはビットマップがデバイスなんだよ。
だから自分でビットマップを作りそれをDCに選択してそのDCにTextOutすると
そのビットマップに文字が描かれる。
そのビットマップをウィンドウのDCにBitBltすれば画面上で見られるってわけ。
0561デフォルトの名無しさん
2008/09/23(火) 13:42:57現在あるオープンソースソフトウェアをソースからビルドしようとしているのですが、
ビルドに際し、環境変数が見つからないと言われます。
windowsOSの環境変数は指定されている通り設定しているのですが、エラーが起こります。
確かvisual studio自体にも環境変数を指定する箇所があったと思うのですが、
場所がわかりません。
visual studio自体に環境変数を指定する場所があるならば、
その方法を教えていただきたいです。
0562デフォルトの名無しさん
2008/09/23(火) 13:49:35スレ違いのようですね・・・
失礼いたしました。
0563デフォルトの名無しさん
2008/09/23(火) 13:53:250564デフォルトの名無しさん
2008/09/23(火) 16:36:04具体的には警告レベルを4として、新規プロジェクトが作成されることを望んでいます。
0565デフォルトの名無しさん
2008/09/23(火) 16:48:500566デフォルトの名無しさん
2008/09/23(火) 16:51:390567デフォルトの名無しさん
2008/09/23(火) 18:01:03みたいな。
0568デフォルトの名無しさん
2008/09/23(火) 18:35:19マクロで設定
既存のプロジェクトをコピーして使いまわす。
プログラム、スクリプト等で定義ファイルを書き替え
VSにパッチを当てて改造する。
0569デフォルトの名無しさん
2008/09/24(水) 15:57:07VC++2005の使い方を教えてください。質問は以下です。
> 482 :デフォルトの名無しさん [] :2008/09/24(水) 07:57:18
> VC++2005を利用しています
> 例外を勉強しているのですが、例外を発生させたときに、
> catchで例外を処理しても、デバッガに例外があったことが出力されます
>
> catchで例外を処理するときは、
> デバッガの出力に例外が発生したことが出力されるのを防ぎたいですが、どのようにすればいいでしょうか
>
> 483 :デフォルトの名無しさん [↓] :2008/09/24(水) 12:37:12
> >>482
> 出力って、例外時のデバッガのダイアログ?だったら、デバッグ->例外で設定できる
> デバッグ出力の例外のレポートだったら気にするな。レポートが出すぎて困るのだったら例外の使い方が間違っている。
>
> 484 :482 [] :2008/09/24(水) 13:18:40
> >>483
> れす、ありがとうございます。後者です。
>
> 例外のつかいかたについては勉強していくところです。
> もし、テストケースとかを今後記述するような場合に、デバッグ出力でOFFにできないのか探しています。
0570デフォルトの名無しさん
2008/09/24(水) 16:12:200571デフォルトの名無しさん
2008/09/24(水) 16:18:03その出力で困るやつがいるのか?
遊びじゃないんだからいい加減にしろ
0572デフォルトの名無しさん
2008/09/24(水) 16:30:520573デフォルトの名無しさん
2008/09/24(水) 22:37:53Googleで検索しろ
遊びじゃないんだからそのくらい自分で調べろ
0575デフォルトの名無しさん
2008/09/25(木) 12:49:58例外は文字通り例外的なことが起きた場合に使うもので、実行を中断せざるを得ないぐらいの場合にしか使わないほうがいい。
そんな滅多におきないことのためにifをたくさん書くのは面倒だしテストが大変になる。だから例外を使って楽に例外処理を実装する。
0576デフォルトの名無しさん
2008/09/26(金) 21:16:30public:
Hoge();
virtual void abs_func() = 0;
};
class Hoge_1:public Hoge{
public:
virtual void abs_func();
};
Hoge::Hoge(){
abs_func();
}
void Hoge_1::abs_func(){
}
int main(int argc, char* argv[]){
Hoge *p = new Hoge_1;
delete p;
return 0;
}
このコード、BCB6では正常ビルドできるけど
VC2005では「外部参照 1 が未解決」リンカエラーなる。
何で?コンパイラスイッチで回避可能?
0577デフォルトの名無しさん
2008/09/26(金) 22:18:040578デフォルトの名無しさん
2008/09/27(土) 10:58:32これにはEclipceみたいに、コンパイルエラーが出る箇所を赤線で事前に教えてくれたりってのはないの?
0579デフォルトの名無しさん
2008/09/27(土) 11:12:320580デフォルトの名無しさん
2008/09/27(土) 11:27:050581デフォルトの名無しさん
2008/09/27(土) 11:40:470582デフォルトの名無しさん
2008/09/27(土) 13:14:19例えば、構造体のメンバだと、 hoge. ここまで書くとメンバ一覧がひょこっとでてくるが、
前に間違いがあると、
a += b: これ間違い。
hoge. ここでヒントが出てこなくなる。
0583デフォルトの名無しさん
2008/09/27(土) 14:30:10コンパイルして実行してみても予期したとおりに動かないのでデバッグで調べた所、
cppファイルのテキストと実行している位置がずれているようです。
ステップオーバーで1行ずつ実行しているのにありえないところで数行飛んだりします。
(代入文が5つ続いてるのをジャンプしたりする)
一つ気になる点はビルド時に
LINK : 前回のインクリメンタル リンクで C:\Documents and Settings\管理者\My Documents\Visual Studio 2005\Projects\****\Debug\****.exe が見つからなかったか、ビルドされませんでした。フル リンクを行います。
という表示が出ることです。
ソリューションのクリーンを行ってもncbファイルを削除してからリビルドしてもこの表示が出ています。
原因or解決方法ご存知の方、お助けくださいませ。
0584デフォルトの名無しさん
2008/09/27(土) 14:34:590585583
2008/09/27(土) 14:38:59素早いレスありがとうございます。
確認しましたが構成はDebugになってます。
0586デフォルトの名無しさん
2008/09/27(土) 14:39:39printfとfprintfがあればおk
0588デフォルトの名無しさん
2008/09/27(土) 14:42:310589583
2008/09/27(土) 14:43:31了解です。
printfで変数を調べてみた所きちんと代入されていることが分かりました。
一つ一つチェックしていくことにします。
回答ありがとうございました。
0590デフォルトの名無しさん
2008/09/27(土) 14:43:320591デフォルトの名無しさん
2008/09/27(土) 14:45:50つか、Debugビルドの構成が間違ってるんじゃね?
0592583
2008/09/27(土) 14:52:03回答ありがとうございます
構成マネージャ->
構成=Debug
プラットフォーム=Win32
ビルド=チェックあり
構成プロパティ->C/C++->全般にある
デバッグ情報の形式=C7互換
となってます。
Debugビルドの構成の部分がどこを指すのかイマイチよくわからないのですが
0593デフォルトの名無しさん
2008/09/27(土) 14:54:470595デフォルトの名無しさん
2008/09/27(土) 15:06:08C7互換を /Zi か/ZI にする。
最適化 無効 (/Od) であることを確認する。
変なのが沸いてるけどデバッガにトラウマでもあるのかな(笑
0596583
2008/09/27(土) 15:12:34最適化無効によりデバッグ情報と実行位置情報が一致するようになりました。
無事いつもどおりのデバッグができるようになりました。
回答していただいた皆様、どうもありがとうございました
0597デフォルトの名無しさん
2008/09/27(土) 15:23:250598583
2008/09/27(土) 15:30:00すいません。全くもってその通りですね…
いつもはデフォルトで最適化が無効になっているのですが
今回はなぜか最適化されてしまっていたので気づきませんでした。
0599デフォルトの名無しさん
2008/09/28(日) 00:30:320600デフォルトの名無しさん
2008/09/28(日) 00:34:060601デフォルトの名無しさん
2008/09/28(日) 01:01:130602デフォルトの名無しさん
2008/09/28(日) 01:19:120603デフォルトの名無しさん
2008/09/28(日) 02:27:430604デフォルトの名無しさん
2008/09/28(日) 03:34:12でおk
0605デフォルトの名無しさん
2008/09/28(日) 14:42:10OS:Vista HomeBasic SP1
はじめ、Visual Studio 2008 SP1 のDVDイメージをダウンロードして焼いてVC++インストール開始。
インストールの途中で、暗転・黒背景白字の英文エラー数秒出て(読めない)OSが落ちて再起動、インストール失敗。
次に書籍付録DVDからVC++2008無印をインストール。一応最後まで成功。
だが前回インストール失敗した残骸(?)が中途半端に残っているのか、登録手続きでキーが表示されなかったり、
ヘルプの参照で壊れている項目があったり、ということが発生。
そこでMicroSoftのアンインストールツールでアンインストール、.NET FRAMEWORK 日本語パックと本体も削除した。
今度はVC++2008SP1をウェブインストール開始。
が.NET FRAMEWORKインストール直後あたりに数秒エラーメッセージが出て(やっぱり読めない)落ちて再起動、失敗。
再びアンインストール作業をして、今度はもうちょっと慎重にやろうと決意。
LAN抜いて、セキュリティソフト(ウイルスバスター2008)を切って、msconfigからMS以外のサービスを停止。
そしてSP1のDVDからインストール開始。
途中Machine Debug Managerを停止せよとの通告が出たので、コンピュータの管理から該当サービス停止。
またHTMLアプリケーションホストも停止せよと言ってきたので、(これっておかしくね?DVDからインスーラ起動する(?)htaのアレだろ?
なんで邪魔にすんだよ?とか思ったが)setup.htaのウィンドウを閉じて、再試行。
最後まで進んでコンピュータの再起動。「システムの構成を更新」してるという表示が出て2回ほど再起動。
今度はうまくいったようで、今のところ問題なく hello fuck'n world とかで遊べてます。
すごい迷走だ。バスターのせいだったのかな。
0606605
2008/09/28(日) 14:50:100607デフォルトの名無しさん
2008/09/28(日) 17:41:040608デフォルトの名無しさん
2008/09/28(日) 18:23:280609デフォルトの名無しさん
2008/09/28(日) 18:41:010610デフォルトの名無しさん
2008/09/28(日) 18:48:56はげどう
0611デフォルトの名無しさん
2008/09/30(火) 12:26:560612デフォルトの名無しさん
2008/09/30(火) 19:13:31最新で無料のバージョンはこれでいいの?
0613デフォルトの名無しさん
2008/09/30(火) 19:59:04CScrollViewクラスのビュー上で、
クライアント領域にBitbltでいくつかのオブジェクトを貼り付けて表示したり動かしたりするプログラムを作っています。
ページが動かないときはそれでいいのですが、スクロールバーを動かしたりしても連動して動いてくれないです。
たとえばBitbltで座標100,100に貼り付けた場合、スクロール有効領域全体の0,0を基点にするわけではなく、
「現在見えている」領域の、100,100の位置に貼り付けられるといった具合です。
OnScrollメソッドで再描画をかけて、GetScrollPosition()の値分、補正して貼り付けてやれば、
スクロールバー連動で位置を動かすことはできたのですが、画面がちらついてしまいます。
スクロールバーと連動して描画したい場合、もっとスマートなやり方はありますか?
たとえば、スクロール有効領域全体の0,0を基点にしたデバイスコンテキスト(のようなもの)を取得して、
そこに貼り付けてやればこちらで再描画かけてやらなくても、スクロールによりWindowsが勝手に動かしてくれるイメージで。
0614デフォルトの名無しさん
2008/09/30(火) 20:11:36まずはちらつく原因を特定して、それを抑えよう
バッファに描いてそれを転送でもいいし、バックグラウンドの塗り潰しかもしれん
スクロールした場合、元の画像はずらしてくれて、
新たな部分だけ無効領域になってるはずだよ
0615デフォルトの名無しさん
2008/09/30(火) 20:16:25それは意味ないぞ
全部更新したいなら別だが。
そこはUpdateWindowだけな
0616デフォルトの名無しさん
2008/09/30(火) 21:13:48と出てきてインストール出来ませんでした。
ちょっと前には普通にインストール出来てたのですが、何が原因かわからないです。
0617デフォルトの名無しさん
2008/09/30(火) 21:21:140618デフォルトの名無しさん
2008/09/30(火) 21:28:44なむ〜
0619デフォルトの名無しさん
2008/09/30(火) 22:22:53HDの寿命なのか・・・
うわああああああああああああああああああ
0620デフォルトの名無しさん
2008/10/01(水) 09:45:34こんなもん始めから無いだろ。
vs_setup.msiじゃないの?
これ試してみては。
ttp://support.microsoft.com/default.aspx/kb/833594/ja
0621613
2008/10/01(水) 14:09:24ありがとうございます。
バッファとしてのデバイスコンテキストを持つようにする方式を試してみました。
CreateCompatibleBitmapでビューのDCと互換のでDCをクリエイトするようにしたところ、
ディスプレイ解像度を超える部分には書き込まれないようです。
(ディスプレイ解像度を大きく超える広さの領域をバーでスクロール表示したい)
ディスプレイに影響されない、独自の形式(解像度)のDCを作る方法がありましたら、教えてください。
CreateCompatibleBitmapではなく、
CreateDCで独自の形式(解像度)のDCを定義することを考えていますが、
このメソッドの使い方(引数の指定方法)がよく分かりません。
ウェブの資料にあった、
bufDC.CreateDC("DISPLAY", 0, 0, 0);
とすると、書き込んだ時点で全画面モードになってしまう予想外の動きが・・・
0622デフォルトの名無しさん
2008/10/01(水) 15:01:03いったいどうやってんの?
Bitmap作るのに大きさ指定できるでしょ?
GetClientRect(&rect);
CPoint pos = GetScrollPosition();
(略)
pDC->BitBlt(pos.x, pos.y, rect.Width(), rect.Height(), &dc, pos.x, pos.y, SRCCOPY);
こんな感じでやってる?
面倒だからとりあえず、
pDC->BitBlt(0, 0, bitmap.Width, bitmap.Height(), &dc, 0, 0, SRCCOPY);
で試してみては?
0623デフォルトの名無しさん
2008/10/01(水) 15:32:08ビットブルト?ビットブロット?
0624デフォルトの名無しさん
2008/10/01(水) 16:06:190625デフォルトの名無しさん
2008/10/01(水) 16:06:54周りのみんなはビットビルトって言ってる
0626デフォルトの名無しさん
2008/10/01(水) 17:11:16vs_setup.msiでした
無事インストール出来ました。ありがとうございます
0627デフォルトの名無しさん
2008/10/01(水) 18:42:06ありがとうございます。
ディスプレイ解像度うんぬんは的外れで、CBitmapのCreateBitmapのところで必要な解像度指定すればうまくいきました。
もうひとつ質問です。
VC6で、DrawTextで貼り付けるテキストを、サイズ指定したりフォントや色を変えたりできますか?
MFC見ているとVC2003以降はDrawTextExってのがあるみたいですが、6でそのようなことをする方法あったら教えてください
0628デフォルトの名無しさん
2008/10/01(水) 18:50:05フォント作ってDCに選択して書くだけだろ。
色はペンやブラシを替えればいいし、GDI関連一通り実験してくれ。
0629デフォルトの名無しさん
2008/10/01(水) 18:50:290630デフォルトの名無しさん
2008/10/01(水) 21:52:490631デフォルトの名無しさん
2008/10/01(水) 22:15:450632デフォルトの名無しさん
2008/10/01(水) 22:17:590633デフォルトの名無しさん
2008/10/01(水) 22:18:090634デフォルトの名無しさん
2008/10/01(水) 22:53:070635デフォルトの名無しさん
2008/10/01(水) 23:14:48今、自作のゲームソフトを作っているのですが、
プログラムでどのぐらいメモリが使われてるか見てみようと思って
Windows タスクマネージャでメモリ使用量を眺めていた所です。
どうも、ファイル読み込みがあるたびにメモリ使用量が増えていき
ある程度の数字を超えると使用量の増加がやむ、というような感じみたいなのです。
mallocやnewで確保したメモリが開放されていないのかな?と思いましたが、
何度見直しても開放処理を行っています。
これってひょっとしてXPのシステムキャッシュというのが
プロセスのメモリ使用量として加算されてるという解釈であっていますでしょうか?
また、ゲームを公開するにあたって動作環境の表記は必要だと思いますが、
このようにプログラマの意図しない所でメモリが消費されているとすると、
プロセスが実際に使う最大メモリ使用量というのはどのように割り出せばいいのでしょうか?
0636デフォルトの名無しさん
2008/10/01(水) 23:19:22動作環境なら、自分の動かしてる環境書いて、「これ以上のスペックなら問題ないでしょう」でいいんじゃない?
0637デフォルトの名無しさん
2008/10/02(木) 00:11:42基本的に「メモリ使用量」(専門的にはワーキングセットという)は
OSがプロセスに割り当てた物理メモリの量。
プログラムがまたアロケートしたときに
割り当てのための余計なコストが増えないよう
物理メモリを確保したままでとどまる。
プロセスがバックグラウンドに移されたり、
他のプロセスがメモリを要求したりした時点で
初めてワーキングセットが減らされる。
ちなみに実際にプロセスが使っているメモリの量を知りたければ
「仮想メモリサイズ」を得る必要がある。
0638デフォルトの名無しさん
2008/10/02(木) 01:23:31レスありがとうございます。
>>636
確かにそれでもいいのかも知れませんが、Windowsアプリになれたプロの人なんかは、
そのソフトに必要なメモリをどのように決めているのかと思いまして。
>>637
>プログラムがまたアロケートしたときに
>割り当てのための余計なコストが増えないよう
>物理メモリを確保したままでとどまる。
ということは、メモリ割り当ての問題であってファイル読み込みとは無関係なのですか?
音声のファイルを読み込んだりしたときに、ディスクアクセスしてないように見えるのですが
0639デフォルトの名無しさん
2008/10/02(木) 01:33:47ちなみにシステムやプログラムが使ってない物理メモリは
全部ディスクキャッシュとして使われる。
0640デフォルトの名無しさん
2008/10/02(木) 02:30:24また別として確保されるのですね。
仮想メモリサイズを取得するというのはGlobalMemoryStatus()でしょうか?
これってプロセス単体の使用量を調べられましたっけ?
それとも、他にプロセスの仮想メモリサイズを調べるための関数がありますか?
0641デフォルトの名無しさん
2008/10/02(木) 11:14:10例えば、物理シミュレーションの映像をDirectXやopenGLでウィンドウ表示しつつ、
演算結果はコンソールで表示し続けるみたいなことです。
プロジェクトを作るときに、コンソールとwin32アプリの2択しかないので、
そういうことは出来ないのでしょうか…
0642デフォルトの名無しさん
2008/10/02(木) 11:15:590644デフォルトの名無しさん
2008/10/02(木) 12:18:40ライブラリとインクルード用意すれば呼べそうな気もするけど、
mainとwinmainで全然作りが違う気がする
0645デフォルトの名無しさん
2008/10/02(木) 12:25:00だとすると、directxなどのライブラリを用いるサンプルソースを試すにはその
都度、プロジェクトを作成しなといけないと思うのですが、ソリューション内の
プロジェクト全てに同じインクルードパスとライブラリパスを適用するような
ことは出来ますか?
0646デフォルトの名無しさん
2008/10/02(木) 12:41:45lib指定が面倒だったらヘッダーに#pragma comment入れとけばいいし
0647645
2008/10/02(木) 13:02:32ありがとうございます。
#pragmaはコンパイラによって挙動が違ったような気がするので
見送りかな。linuxでもコンパイル出来るようにしときたいので。
0648デフォルトの名無しさん
2008/10/02(木) 13:13:28LinuxではDirectX使えないよ
そもそもここはVisualC++のばりばり環境依存のスレです
0649デフォルトの名無しさん
2008/10/02(木) 13:28:45#include <windows.h>
int main(void)
{
HWND myWindow = CreateWindow(
TEXT("STATIC"),
TEXT("hogehoge"),
WS_OVERLAPPED,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
NULL,
NULL
);
ShowWindow(myWindow, SW_SHOW);
MessageBox(NULL,TEXT("ok"),TEXT("close"),MB_OK);
return 0;
}
0650640
2008/10/02(木) 13:40:43プロセス終了時に取得したPROCESS_MEMORY_COUNTERS構造体のメンバのうち、
PeakWorkingSetSize と PeakPagefileUsage の合計値が
プロセスで実際に使われた最大メモリ使用量という事でいいのでしょうか?
というか、ゲームに使われる全てのファイルサイズの合計超えてます^^;
こういうものなのでしょうか?プロの人は本当にどうしてるのか気になります。
一度大きくメモリを確保してプログラムで小出しにするなんちゃってアロケート実装とかですかね?
0652デフォルトの名無しさん
2008/10/02(木) 13:46:00机上で計算しても何の意味もない
0653デフォルトの名無しさん
2008/10/02(木) 13:59:010654デフォルトの名無しさん
2008/10/02(木) 14:00:340655デフォルトの名無しさん
2008/10/02(木) 14:01:06>>650は実測はしてはみたけどそれが正しい方法なのか知りたいって事でしょ
俺もメモリ関係よくわからんから知りたいわ
0656デフォルトの名無しさん
2008/10/02(木) 14:05:12こんなこと言うくらいだから知ったかぶりして余計な心配してるだけだろ
0657デフォルトの名無しさん
2008/10/02(木) 14:05:17無知な後輩から馬鹿にされたんですが。師ねよ。
0658デフォルトの名無しさん
2008/10/02(木) 14:06:53Windowsはともかく、家庭用ゲームの開発だと大抵はそういう手法とってるよ
Windowsのメモリ管理なんてまともにやってるゲーム会社なんてないんじゃね?
0659デフォルトの名無しさん
2008/10/02(木) 14:06:570660デフォルトの名無しさん
2008/10/02(木) 14:10:17C言語で { を勝手に改行されたら逆に困りますよ
0661デフォルトの名無しさん
2008/10/02(木) 14:14:030662デフォルトの名無しさん
2008/10/02(木) 14:17:34private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
を
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
て感じです
そもそも後者の方は一般的ではないんでしょうか?
もしそうなら今の設定に慣れるように努力します
0663デフォルトの名無しさん
2008/10/02(木) 14:20:330664デフォルトの名無しさん
2008/10/02(木) 14:28:00分かりました手動で頑張ってみます
どうもありがとうございました
0665デフォルトの名無しさん
2008/10/02(木) 22:29:37にチェック
ではないか
C++/CLIの設定ってあるのかね?
0666デフォルトの名無しさん
2008/10/02(木) 23:20:170667デフォルトの名無しさん
2008/10/02(木) 23:33:03リストを取得する関数はありますか?
具体的には↓のtest直下にあるtest1、test2、test3の名称を取得したいです。
test\test1
\test2
\test3
0668デフォルトの名無しさん
2008/10/02(木) 23:41:520669デフォルトの名無しさん
2008/10/02(木) 23:50:43RegOpenKeyEx と RegQueryInfoKey と RegEnumValue で列挙できたと思う
詳しい使い方忘れた、ググれ
0670デフォルトの名無しさん
2008/10/02(木) 23:51:36そういうAPIを探していたのですが見つからないので
自作しかないでしょうか?
0671デフォルトの名無しさん
2008/10/02(木) 23:55:52ありがとうございます。それらのAPIを調べてみます。
0672デフォルトの名無しさん
2008/10/03(金) 00:31:05これで取得できそうです。
0673デフォルトの名無しさん
2008/10/03(金) 01:22:01と言う宣言は、可変長引数を表しているのですか?
'...'でググッたら死ねましたorz
0674デフォルトの名無しさん
2008/10/03(金) 01:48:130675デフォルトの名無しさん
2008/10/03(金) 07:49:350676デフォルトの名無しさん
2008/10/03(金) 11:18:54名前と ... から考えるとそうだろう
0677デフォルトの名無しさん
2008/10/03(金) 13:01:50ノーパソのXP(x86)にもってきてみると動きませんでした
動かない理由は
1.x64でコンパイルしたから
2.MS土台のバージョンが古いから
3.そもそもXPでは動かない
どれでしょうか?
0678デフォルトの名無しさん
2008/10/03(金) 13:08:520679デフォルトの名無しさん
2008/10/03(金) 13:12:150680デフォルトの名無しさん
2008/10/03(金) 13:12:240681デフォルトの名無しさん
2008/10/03(金) 13:16:150682デフォルトの名無しさん
2008/10/03(金) 13:20:20fw入ってないんだろう
0683デフォルトの名無しさん
2008/10/03(金) 13:20:24677 ノーパソに2008入れてないのがまずいのかな〜
0684デフォルトの名無しさん
2008/10/03(金) 13:21:48ノートはシングルコアでした
0685デフォルトの名無しさん
2008/10/03(金) 13:24:34再配布可能なファイルredistなんたらが入ってるから
それ入れてみ
0686デフォルトの名無しさん
2008/10/03(金) 13:28:45使う側も最新にしとかないとだめなんですねえ
0687デフォルトの名無しさん
2008/10/03(金) 13:36:14動かすほうのOSも64bitじゃないと
動かないよ、当然だけど念のため
0688デフォルトの名無しさん
2008/10/03(金) 13:38:040689デフォルトの名無しさん
2008/10/03(金) 13:47:380690デフォルトの名無しさん
2008/10/03(金) 13:54:58探して見ます
0691デフォルトの名無しさん
2008/10/03(金) 14:04:420692デフォルトの名無しさん
2008/10/03(金) 14:07:41俺は商用アプリでもなきゃレジストリ使わないな
インストーラーアンインストーラー不要で済むし
0693デフォルトの名無しさん
2008/10/03(金) 14:08:230694デフォルトの名無しさん
2008/10/03(金) 21:11:03全部 *.cpp に書くんですか
0695デフォルトの名無しさん
2008/10/03(金) 21:20:11MVCとかMVPにしたいなら自分で勝手にrefクラスを分ける。
0696デフォルトの名無しさん
2008/10/04(土) 14:25:37メニューにビルドの項目が無いのですが、どうやって追加するのですか?
0697デフォルトの名無しさん
2008/10/04(土) 14:30:070698デフォルトの名無しさん
2008/10/04(土) 14:31:19メニューの、新規作成 -> プロジェクト でプロジェクトを作成しないと、ビルドはでないよ。
0699デフォルトの名無しさん
2008/10/04(土) 14:36:09親切にありがとうございます
無事にコンパイルが出来ました
で宿題を教えてもらったものですが、
Visual C++で
http://pc11.2ch.net/test/read.cgi/tech/1222813731/32
のソースコードで開くファイルを指定するにはどうすればよいでしょうか?
向こうのスレでは
http://pc11.2ch.net/test/read.cgi/tech/1222813731/71
という方法を教えられたのでコマンド引数にファイル名をフルパスで書いたのですが、うまくいきません
0701デフォルトの名無しさん
2008/10/04(土) 22:19:53とっととコンビにのバイトの面接でも受けにいけばいかがでしょうか。
0702デフォルトの名無しさん
2008/10/04(土) 22:24:130703デフォルトの名無しさん
2008/10/04(土) 22:27:460704デフォルトの名無しさん
2008/10/04(土) 22:32:32このスレのログは「ファイル」で検索して読みました。
読んでもわかりませんでした。
0706デフォルトの名無しさん
2008/10/04(土) 22:46:390707デフォルトの名無しさん
2008/10/04(土) 22:53:44何がどううまくいかないのか説明して欲しい。
fopen()でNULLが返ってくるのか、
それとも他に何かエラーが出ているのか。
ソースコードは
#include<stdio.h>
void moji_line_count(const char *filename){
FILE *fp;
int prev='\n', moji, moji_count=0, line_count=0;
if((fp=fopen(filename, "rb"))==NULL) return;
for(;(moji=fgetc(fp))!=EOF;prev=moji,moji_count++) if(moji=='\n') line_count++;
fclose(fp);
if(prev!='\n') line_count++;
printf("File : %s\nCharacter count : %d\nLine count : %d\n\n", filename, moji_count, line_count);
}
int main(int argc, char *argv[]){
int i;
for(i=1;i<argc;i++) moji_line_count(argv[i]);
return 0;
}
なのですが、エラーが帰ってくるのではなく純粋にこのソースコードで開くファイルを指定する方法ががわからないのです
0709デフォルトの名無しさん
2008/10/04(土) 23:09:330710デフォルトの名無しさん
2008/10/04(土) 23:10:36ファイルを指定する方法は、
プロジェクトのプロパティ>構成プロパティ>デバッグ>コマンド引数で
ファイル名を指定する、と既にアドバイスをもらっているはずだけど。
適当なテキストファイルのフルパスを打ち込んで見ましたが、うまくいきませんでした
アドレスは
打ち込むのってこれであってますよね?
C:\\Documents and Settings\\ユーザー名\\デスクトップ\\テキストファイル.txt
0712デフォルトの名無しさん
2008/10/04(土) 23:17:260713デフォルトの名無しさん
2008/10/04(土) 23:19:19http://www.tdragon.net/recentgcc/
0714デフォルトの名無しさん
2008/10/04(土) 23:20:390715デフォルトの名無しさん
2008/10/04(土) 23:22:00何度も言うけど、うまくいかないという書き方は良くない。
何をやって何がうまくいかなかったのか丁寧に書くべき。
で、そのフォルダに「テキストファイル.txt」というファイルは置いてある?
0716デフォルトの名無しさん
2008/10/04(土) 23:23:24意図していた結果と、実際に得られた結果がどうなってるの?
すいませんでした。
Ctrl+F5でビルドしても「続行するには何かキーを押してください」とでてキーを押すと終了します。
ファイルは確かにデスクトップにおいてあります。
>>716
>>708のソースで求めているものは、
ファイルを1つまたは複数指定し、
各ファイルに含まれる行数と文字数を数えて画面に出力
なのですが、
ファイルを指定して各ファイルに含まれる行数と文字数を数えて画面に出すことができず、
終了してしまいます
0718デフォルトの名無しさん
2008/10/04(土) 23:30:420719デフォルトの名無しさん
2008/10/04(土) 23:38:22コマンド引数を指定して、ファイルは存在するとしたら
プログラム自体がおかしい、となる。
そこでブレークポイントを置いてF5でデバッグ実行。
0720デフォルトの名無しさん
2008/10/04(土) 23:41:47ひょっとしてDocuments and Settingsの罠にかかってる?
argvの中身確認してみて。
argvをググりましたがさっぱりわかりません
0722デフォルトの名無しさん
2008/10/04(土) 23:48:530724デフォルトの名無しさん
2008/10/04(土) 23:51:37何がわからないのか説明(ry
あとデバッグ実行(ry
0725デフォルトの名無しさん
2008/10/04(土) 23:58:07プログラムは誰かに作ってもらったんだろうな。
0726デフォルトの名無しさん
2008/10/05(日) 00:18:230727デフォルトの名無しさん
2008/10/05(日) 01:02:34バカじゃねーのwww
0728デフォルトの名無しさん
2008/10/05(日) 01:16:41ホントゴミ溜め以下だなここは
0729デフォルトの名無しさん
2008/10/05(日) 01:18:230730デフォルトの名無しさん
2008/10/05(日) 01:39:360731デフォルトの名無しさん
2008/10/05(日) 08:26:38GUI環境とコンソール環境の両方の知識が必要になるから
最初はコンソール環境で始めた方がいい。
小さなプログラムコンパイルするのにいちいちプロジェクト作ったり
パラメータ渡すのに設定いじるとか
よくそんな面倒なことやってるなと感心する。
0732デフォルトの名無しさん
2008/10/05(日) 08:43:54http://www.tdragon.net/recentgcc/
0733デフォルトの名無しさん
2008/10/05(日) 11:02:31MAKEFILE覚えないですむから比較的楽じゃね?
0734デフォルトの名無しさん
2008/10/05(日) 11:04:21しかしデバッガ自体知らないのでは話にならんが。
0735デフォルトの名無しさん
2008/10/05(日) 11:07:01まあでも学生ならgccなりBolandのC++コンパイラーなり覚えた方がいいと思うが
0736デフォルトの名無しさん
2008/10/05(日) 11:30:020737デフォルトの名無しさん
2008/10/05(日) 11:34:580738デフォルトの名無しさん
2008/10/05(日) 11:41:45一ファイルに難行も詰め込んだら間違える
0739デフォルトの名無しさん
2008/10/05(日) 12:00:43cl main.c で充分だわな
0740デフォルトの名無しさん
2008/10/08(水) 00:48:38windowsフォームアプリケーションを作成しようとしています。
フォントについて質問させてください。
ニコニコ動画や、Live2Viewというソフトのような
白地の上でも見づらくない白文字→( http://www2.imgup.org/iup703826.jpg.html )
が使いたいのですが、それらしいフォントが見つからず、
ラベルのフォントのプロパティでも見つけられませんでした。
フォントやプロパティの設定とかじゃなく、けっこう難しいことをしないと実現できないのでしょうか。
※白地の上でも見づらくない白文字であれば、
ニコニコのように影を付けるでも、Live2Viewというソフトのようにフチを付けるでも
どちらでもよいです。
0741デフォルトの名無しさん
2008/10/08(水) 01:12:47上下左右でずらせば縁取り
0742デフォルトの名無しさん
2008/10/08(水) 01:31:580743デフォルトの名無しさん
2008/10/08(水) 03:40:04つーかそれぐらい思いつけよ
影をつけるんならPhotoshopでも使って書いて画像を表示しろ
0744デフォルトの名無しさん
2008/10/08(水) 08:53:330745デフォルトの名無しさん
2008/10/08(水) 11:35:090746デフォルトの名無しさん
2008/10/08(水) 16:57:36WM_NOTIFY で TVN_BEGINDRAG を捕まえ、
TVM_CREATEDRAGIMAGE を呼んでいるのですが、
直後の GetLastError() で 6 (ハンドルが無効)となってしまいます。
また、ハンドルは返ってきているため
そのエラーを無視して処理を続けたのですが、
( ImageList_BeginDrag() など )
ドラッグイメージが描画されません。
ただし、描画されないだけで落ちるようなことはありません。
また、ドラッグイメージを使用するためには、
TreeView_SetImageList() を呼び、
関連付けしなければいけないとリファレンスに書いてあると思いますが、
イメージリストの作成方法が間違っているのでしょうか?
イメージの追加 ( ImageList_Add() など ) はしていません。
加えて、項目の先頭に不要な空間(イメージが出ているであろう場所)が
あるのですが、それをなくすことは可能でしょうか?
現在は以下のように処理をしています。
img = ImageList_Create( 16, 16, ILC_COLOR, 0, 1 );
TreeView_SetImageList( htree, img, TVSIL_NORMAL );
ツリービューのスタイルは以下の通りです。
| TVS_HASBUTTONS // +/-ボタンを表示する。
| TVS_HASLINES // 破線を表示する。
| TVS_SHOWSELALWAYS // 選択したアイテムの色が変わる。
| TVS_LINESATROOT // rootにも破線表示。
| TVS_EDITLABELS // ラベルの変更をする。
| TVS_CHECKBOXES // チェックボックス付き
環境は XP SP2 + VC2003 です。
よろしくお願いします。
0747デフォルトの名無しさん
2008/10/08(水) 17:23:380748746
2008/10/08(水) 17:36:52アドバイスありがとうございます。
以下のように変更し、試して見ましたが
変化はないようでした。
img = ImageList_Create( 16, 16, ILC_COLOR, 0, 1 );
{
HDC hdc( GetDC( m_Hwnd ) );
HBITMAP bmp( CreateCompatibleBitmap( hdc, 16, 16 ) );
int ret( ImageList_Add( img, bmp, NULL ) );
BOOL b( ImageList_Remove( img, ret ) );
DeleteObject( bmp );
ReleaseDC( m_Hwnd, hdc );
}
TreeView_SetImageList( m_Hwnd, img, TVSIL_NORMAL );
ImageList_Remove() をしなかったり、
ImageList_Create() の最後を2つの引数をいろいろ変更してみましたが、
それも変化なしでした。
0749デフォルトの名無しさん
2008/10/08(水) 18:08:410750デフォルトの名無しさん
2008/10/08(水) 18:14:17イメージリストは生きている間、保持してないとならんはずだが。
渡した先でコピーを持ってるわけじゃない。
0751デフォルトの名無しさん
2008/10/08(水) 18:15:25デバイスは?
Beep()つかうか、DirectSoundあたりで。
0752デフォルトの名無しさん
2008/10/08(水) 18:31:09無責任にwaveOut
0753デフォルトの名無しさん
2008/10/08(水) 18:38:220754746
2008/10/08(水) 18:47:18イメージリストはプログラムの終了時に破棄しています。
ビットマップも同じくプログラムの終了時に
破棄するようにしましたが、変化ありませんでした。
0755デフォルトの名無しさん
2008/10/08(水) 18:59:07(成功したら必ずNOERRORにリセットされるわけではない)
0756デフォルトの名無しさん
2008/10/08(水) 19:11:26それを全てやらないときれいにふちどりできないよ
上下左右の方がまだマシな結果になるんでね
どちらにしても一ドットずらし限定だけど
0757746
2008/10/08(水) 19:11:59確かにリファレンスには GetLastError() については書かれていません。
しかし、以下のソースを実行すると、実行前は 0 に対し、
実行後に 6 になりました。
( ここでの DebPrintf() はデバッグ出力自作関数です。 )
DebPrintf( "bf %d\n", GetLastError() );
m_DragImg = TreeView_CreateDragImage( m_Hwnd, lpnmtv->itemNew.hItem );
DebPrintf( "af %d\n", GetLastError() );
0758デフォルトの名無しさん
2008/10/08(水) 19:29:39ちゃんと動くサンプルがいっぱいありそうなもんだけど
0759デフォルトの名無しさん
2008/10/08(水) 19:43:52普通に試しても動くからな。
0760デフォルトの名無しさん
2008/10/08(水) 19:52:46だからMSDNに何も書かれてなければ、その値には何の意味も無い。
中での処理でたまたまそうなっただけ。
戻り値が成功を示しているのなら成功している。
0761デフォルトの名無しさん
2008/10/08(水) 19:57:07もっと、ONOFF比率50%で262Hzをサウンドカードから出力させて、スライダーで周波数を変えていくようなデータ垂れ流しをするのはどっちいいですか?
フィルタとか合成とかもする場合いちいちRIFFフォーマットをつくって再生関数で再生させるんですか?
0762746
2008/10/08(水) 20:03:54そうですか・・・
わざわざ試していただいてありがとうございました。
>>760
なるほど。
では、エラー値が返っていないということで、
その他の処理をしても問題ないのですね?
ありがとうございました。
描画処理の方を見直してみます。
>>お答えいただいた方々
ありがとうございました。
0763デフォルトの名無しさん
2008/10/08(水) 20:21:30日本語でおk
0764740
2008/10/08(水) 22:14:14アドバイスありがとうございます。
単純にフォントのプロパティをいじるだけでは
ムリということですね。
どうやらCSSやJavascriptでできるようなので、
ラベルの代わりにブラウザ窓を配置して対応してみようと思います。
それがイメージ通りのものになるのかはまだ見えないので、
それがダメなようならフォントを重ねる方向で行きたいと思います。
ありがとうございました。
0765デフォルトの名無しさん
2008/10/08(水) 22:32:530766デフォルトの名無しさん
2008/10/08(水) 23:10:26VC++をいじってるんですが、double型の値を画面に表示させると
「0.000000」といった感じで小数部が6桁表示されてしまいます。
この小数部の表示桁数を制限したいのですが、何か良い関数など
があれば教えて下さい。
よろしくお願い致します。
0767デフォルトの名無しさん
2008/10/08(水) 23:13:110768デフォルトの名無しさん
2008/10/08(水) 23:20:140769デフォルトの名無しさん
2008/10/08(水) 23:47:55どうやって画面表示させてるんだ?
0770デフォルトの名無しさん
2008/10/09(木) 10:29:58%fを使っているのなら、%gに代えろ。
0771デフォルトの名無しさん
2008/10/09(木) 13:11:15良い関数あるよ
printf( )を使うといいよ
って使ってるんだろうけど
0772デフォルトの名無しさん
2008/10/09(木) 20:37:14class AAA;
class BBB;
class AAA{
public:
int inta;
void InitB(){
bbb.intb = 0;
}
}aaa;
class BBB{
public:
int intb;
void InitA() {
aaa.inta = 0;
}
}bbb;
void main(void){
bbb.InitA();
}
みたいにプロトタイプ宣言をしてもだめでした
どうすればお互いに相互アクセスできるでしょうか?
0773デフォルトの名無しさん
2008/10/09(木) 20:47:050774デフォルトの名無しさん
2008/10/09(木) 20:50:570775デフォルトの名無しさん
2008/10/09(木) 21:22:020776デフォルトの名無しさん
2008/10/09(木) 22:26:18ネットバンキングとか全部抜ける?いやデータが入ってたから一瞬思っただけなんだけど
0777デフォルトの名無しさん
2008/10/09(木) 22:27:580778デフォルトの名無しさん
2008/10/10(金) 01:21:300779デフォルトの名無しさん
2008/10/10(金) 14:30:090780デフォルトの名無しさん
2008/10/10(金) 19:03:53ファイル名がわかっている場合の修復はどうすればいいんですか?メディアを検索してもファイル名が引っ掛かりません
0781デフォルトの名無しさん
2008/10/10(金) 19:06:48質問は日本語でお願いします。
0782デフォルトの名無しさん
2008/10/10(金) 19:14:420783デフォルトの名無しさん
2008/10/10(金) 19:15:260784デフォルトの名無しさん
2008/10/10(金) 19:17:090785デフォルトの名無しさん
2008/10/10(金) 19:31:39教えるのはやめにしよう
0786デフォルトの名無しさん
2008/10/10(金) 22:32:450787デフォルトの名無しさん
2008/10/11(土) 04:33:16空なのにpopしたりとか、エラーが出るようなコードを走らせたとき、
STLのコード内でのエラーで止まるのはわかるとして、
どの呼び出し元が原因でSTL内でエラーが出たのか知るにはどうすればいいでしょうか?
0788デフォルトの名無しさん
2008/10/11(土) 10:28:000789デフォルトの名無しさん
2008/10/11(土) 19:58:43どうやってみるんでしょうか?
0790デフォルトの名無しさん
2008/10/11(土) 20:05:240791デフォルトの名無しさん
2008/10/11(土) 21:33:12ありがとうございます
検索ワードが微妙なのが原因で見つからなかったようです
助かりました
0792デフォルトの名無しさん
2008/10/11(土) 22:30:13【初心者歓迎】C/C++室 Ver.59【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1220708712/
★初心者にVisual C++を教えるスレ★ Part31
http://pc11.2ch.net/test/read.cgi/tech/1217494948/
0793デフォルトの名無しさん
2008/10/13(月) 11:56:33メソッドが増えてくるに従って、ヘッダファイルを書くのがだんだん大変になってきました。
なにかよい機能や、ツールなど(ソースファイルからヘッダを自動生成するようなもの)はないのでしょうか?
0794デフォルトの名無しさん
2008/10/14(火) 09:33:00DrawTextでデバイスコンテキストにテキストを描画する際の、
行間指定方法はありますか?
水平方向の文字間隔指定はSetTextCharacterExtra()メソッドでできましたが、
縦方向のが分かりません。
0795デフォルトの名無しさん
2008/10/14(火) 09:52:04つ[DrawTextEx()]
0796デフォルトの名無しさん
2008/10/14(火) 10:06:34VC6ではCDC::DrawTextEx()は使えないようです・・・
入力時にポップするメンバ一覧を見ても無いです。
テキスト表示関連はDrawTextかTextOutだけのようです。
0797デフォルトの名無しさん
2008/10/14(火) 10:35:010798デフォルトの名無しさん
2008/10/14(火) 10:52:32という具合に2次元配列を扱おうとしているんですが、
デバッグ時にa(1,3)がa[16]となっているか調べることって出来ますか?
マウスを乗っけると、ポップアップでaへのポインタ?、aの値が出るのですか、
添え字があっているのか疑心暗鬼になってしまっています。
また、ループ中に、aへのポインタが変わっていないということは、添え字が
反映されていないということかorz
0799デフォルトの名無しさん
2008/10/14(火) 11:02:48ドラッグ中にマウスカーソルを変更したく
下記のサンプルでCTest::DragEnterメソッドに
SetCursorを入れてみたのですがマウスカーソルが
変わってくれません。どこに入れるのが妥当なのでしょうか?
http://hp.vector.co.jp/authors/VA016117/oledragdrop5.html
よろしくお願いいたします。
0800デフォルトの名無しさん
2008/10/14(火) 11:10:43質問とは関係ないが
a( 1, val-1)とかでも問題ないようにマクロ変数は( )でくくっといたほうがいいよ
#define a(x,y) a[(x) + (y)*5]
0801デフォルトの名無しさん
2008/10/14(火) 13:34:26CDC::
・・・のメンバとしてのDrawText系ではなく、
単発で
DrawTextEx(pDC->GetSafeHdc(), ...
というようにやれば、DrawTextExを使う方法は分かりました。
しかし、行間設定する方法が良く分からないです。
詳しく教えてください
0802デフォルトの名無しさん
2008/10/14(火) 14:10:371行ずつ処理したらいいんじゃない
0803デフォルトの名無しさん
2008/10/14(火) 21:38:31ソリューションのフォルダにある「ソリューション名」.suoというファイルは何を保存してるのでしょう?
消しても一応動いているのですが、このファイルは消しても問題ないのでしょうか?
0804デフォルトの名無しさん
2008/10/14(火) 23:52:00最後に開いていたファイルとか、カーソル位置とか、画面の分割とかの情報だったと思う。
消さずに開らきなおしたら、最後の状態で開くはず。消したら、全部閉じた状態で立ち上がるでしょ?
あと、フォルダ名とか変更してもダメになる。絶対アドレスで覚えてるようだね。
0805デフォルトの名無しさん
2008/10/15(水) 00:12:53ありがとうございます。確かにそんな感じみたいですね。
個々のユーザーの使用状態みたいなものでしょうか。
ソースの公開や共同制作の場合にはむしろ消した方がよさそうですね。
0806デフォルトの名無しさん
2008/10/15(水) 11:54:24ビューの型はCScrollViewです。
OnKeyDownメソッドへの記述、
switch(nChar) {
case VK_〜〜:
if( GetKeyState( VK_CONTROL) & 0x80 ){
MessageBox("入力成功");
}
break;
}
このようにして組み合わせの入力を可能にすることを試みています。
これで大半のキーの組み合わせはいけるようなのですが、
CTRL+Cといった、特定の組み合わせは、ショートカットキー他で取られているようで、こちらでは認識できません。
標準で用意されたショートカットキーのほうを無効にする、
もしくは、ショートカットキーCTRL+Cで発生するイベントとして独自のものを書く方法はありますか?
作っているアプリケーションで、どうしても「コピー」「切り取り」「貼り付け」のような操作を、
標準的なショートカットキーでできるようにしたいので。
よろしくお願いします。
0807デフォルトの名無しさん
2008/10/15(水) 12:11:300808デフォルトの名無しさん
2008/10/15(水) 12:17:430809デフォルトの名無しさん
2008/10/15(水) 12:18:34アクセラレータキーってわかるか?
0810デフォルトの名無しさん
2008/10/16(木) 05:10:130811デフォルトの名無しさん
2008/10/16(木) 05:46:58MoveWindow
指定されたウィンドウの位置とサイズを変更します。
トップレベルウィンドウ (親を持たないウィンドウ) の場合は、
位置とサイズをスクリーン座標で指定します。
子ウィンドウの場合は、クライアント座標で指定します。
クライアント座標はクライアント領域の左上隅からの相対座標
0812デフォルトの名無しさん
2008/10/16(木) 07:01:50RECT WndRect, CtrRect;
GetClientRect(&WndRect); //ダイアログウィンドウ本体
GetDlgItem(IDC_btn1)->GetClientRect(&CtrRect); //ボタンコントロール
GetDlgItem(IDC_btn1)->MoveWindow(10, WndRect.bottom-100, CtrRect.right, CtrRect.bottom, TRUE);
0813デフォルトの名無しさん
2008/10/16(木) 09:41:17//ボタンコントロール
の前の全角スペースのせいでコンパイルエラーとかじゃないよね?
0814デフォルトの名無しさん
2008/10/16(木) 09:49:190815デフォルトの名無しさん
2008/10/16(木) 09:57:04で、中断を押すと、afxwin2.inlのこの位置にカーソルが来ます。
_AFXWIN_INLINE void CWnd::GetClientRect(LPRECT lpRect) const
{ ASSERT(::IsWindow(m_hWnd)); ::GetClientRect(m_hWnd, lpRect); }
OnSizeの中に書いてるのがいけないのでしょうか?
void CSoundCreateDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: ここにメッセージ ハンドラ コードを追加します。
RECT WndRect, CtrRect;
GetClientRect(&WndRect); //ダイアログウィンドウ本体
GetDlgItem(IDC_btn1)->GetClientRect(&CtrRect); //ボタンコントロール
GetDlgItem(IDC_btn1)->MoveWindow(10, WndRect.bottom-100, CtrRect.right, CtrRect.bottom, TRUE);
}
0816デフォルトの名無しさん
2008/10/16(木) 10:14:55初回のOnSizeの時にはまだコントロールできてないかも
0817デフォルトの名無しさん
2008/10/16(木) 10:22:10その件とは違うけど、OnSizeの中なら自分のGetClientRect呼ばなくても、cx,cyに入ってると思うが。
0818デフォルトの名無しさん
2008/10/16(木) 10:23:56フラグを作ってOnInitDialogでフラグオンにして実行するようにしたらできました。
ありがとうございました。
>>817
なるほど勉強になります。ありがとうです
0819デフォルトの名無しさん
2008/10/16(木) 11:06:500820デフォルトの名無しさん
2008/10/17(金) 01:01:52追加しなくてもいいライブラリ一覧ってあるんですか?たとえばKernel32.libを追加しなくても実行できちゃいます
0821デフォルトの名無しさん
2008/10/17(金) 09:40:060822デフォルトの名無しさん
2008/10/19(日) 23:47:53しかし、パラメータが構造体へのポインタである場合、アドレスしかわからないので、その中身を見る方法を教えてください。
0823デフォルトの名無しさん
2008/10/19(日) 23:51:010824デフォルトの名無しさん
2008/10/19(日) 23:57:470825デフォルトの名無しさん
2008/10/20(月) 00:44:440826デフォルトの名無しさん
2008/10/20(月) 14:40:030827デフォルトの名無しさん
2008/10/20(月) 17:37:39http://orochi.iiichan.net/unc/src/1224096176497.gif
http://orochi.iiichan.net/unc/src/1224096126211.gif
http://orochi.iiichan.net/unc/src/1208680198286.gif
http://orochi.iiichan.net/unc/src/1207662800093.gif
http://orochi.iiichan.net/unc/src/1207662914883.gif
http://orochi.iiichan.net/unc/src/1224096015961.gif
http://orochi.iiichan.net/unc/src/1224095886682.gif
http://orochi.iiichan.net/unc/src/1224095679492.gif
http://orochi.iiichan.net/unc/src/1221406173087.gif
http://orochi.iiichan.net/unc/src/1220798048817.gif
http://orochi.iiichan.net/unc/src/1220797354755.gif
http://orochi.iiichan.net/unc/src/1220797218701.gif
http://orochi.iiichan.net/unc/src/1220796970917.gif
http://orochi.iiichan.net/unc/src/1217562561748.gif
http://orochi.iiichan.net/unc/src/1216300597693.gif
0828デフォルトの名無しさん
2008/10/20(月) 19:32:33このスレッドの存在を無視してDLLをFreeLibraryするとEXEも死亡したりしますか?
0829デフォルトの名無しさん
2008/10/20(月) 20:24:120830デフォルトの名無しさん
2008/10/20(月) 20:26:05そのスレッドの中で動いているコードが
解放しようとしているDLL内のものだったら、当然駄目だな。
0831デフォルトの名無しさん
2008/10/20(月) 20:26:28ってことじゃないのか。俺は答え知らないけど。
0832デフォルトの名無しさん
2008/10/21(火) 00:01:42CreateWindowEx() で作成した従来通りのウィンドウに、
(System以下APIを使用したC++のコード)
System.Windows.Forms.PropertyGrid を追加したいのですが
何か方法はありますか?
0833デフォルトの名無しさん
2008/10/21(火) 13:36:18いまいち関係がよーわからん。
MFCはWin32APIをラッピングしたクラスってだけだよね。
C++/CLIはまたぜんぜん違うコーディングなんでしょ?Managed C++てやつ。
0834デフォルトの名無しさん
2008/10/21(火) 15:43:41>MFCとC++/CLIってぜんぜん関係ないの?
うん、関係無い。
>MFCはWin32APIをラッピングしたクラスってだけだよね。
そう。C++で使うもの。(「ドキュメント/ビュー アーキテクチャ」という別の面もあるけどまぁ)
>C++/CLIはまたぜんぜん違うコーディングなんでしょ?
そう。言語が違う。C++/CLIはC++を拡張した別の言語。
>Managed C++てやつ。
これはC++/CLIの前身で、また別のものなんですよ。
0835デフォルトの名無しさん
2008/10/21(火) 15:45:560836デフォルトの名無しさん
2008/10/21(火) 15:47:450837デフォルトの名無しさん
2008/10/21(火) 15:48:430838デフォルトの名無しさん
2008/10/21(火) 16:38:460839832
2008/10/21(火) 16:40:36以下の手順の通り、関連付けられていないハンドルを作ってから、
親を強制的に変更という強引な手法ですが、
コントロールに貼り付けることができました。
サイズの変更なども SetWindowPos() でできることを確認済みです。
// インスタンスを作成
m_Form = gcnew ::PropertyGrid();
// プロパティの設定
m_Form->Location = System::Drawing::Point( x, y );
m_Form->Size = System::Drawing::Size( width, height );
// 先にハンドルを作成
m_Form->CreateControl();
hwnd = (HWND)m_Form->Handle.ToPointer();
// 親を強制的に変更
SetParent( hwnd, hParent );
0840デフォルトの名無しさん
2008/10/21(火) 16:45:31過去のC++のソースコード資産を生かしつつ、C++をより高級言語にしたのが
C++/CLIなら、今更C#やる意味なくね?
0841デフォルトの名無しさん
2008/10/21(火) 16:56:43特別な事情がなければC#
0842デフォルトの名無しさん
2008/10/21(火) 17:20:37VBと同じだよなぁ・・・VBでいいじゃん。
0843デフォルトの名無しさん
2008/10/21(火) 17:33:090844デフォルトの名無しさん
2008/10/21(火) 17:41:47VB.NET]とC#を比べるなら、
C#にはVBではなくCっぽい構文ってところに人を引き寄せる力があるんだよ。
0845デフォルトの名無しさん
2008/10/21(火) 17:43:35設定(依存のライブラリとか)を再利用するようなことは出来ないのでしょうか?
0846デフォルトの名無しさん
2008/10/21(火) 17:49:30オブジェクト指向必須だし 文法同じでも中身ぜんぜん違うし
無理に.net化しないで終了したほうがよかったんじゃないかとおもう
たまにVBAはつかうけどマクロがC#とかで組めるようになってほしいわ
0847デフォルトの名無しさん
2008/10/21(火) 17:51:43結局VB厨が多すぎた。
0848デフォルトの名無しさん
2008/10/21(火) 18:40:20質問答える奴の態度でかすぎ
0849デフォルトの名無しさん
2008/10/21(火) 18:41:280850デフォルトの名無しさん
2008/10/21(火) 18:43:310851デフォルトの名無しさん
2008/10/21(火) 19:22:28それでくめば十分組めるだろ。。VC++使いならそれくらいのレベルであってほしい!
0852デフォルトの名無しさん
2008/10/21(火) 20:21:58教えてやってる方が態度でかいのは当然だ
気に入らないなら自力でなんとかしろ
0853デフォルトの名無しさん
2008/10/21(火) 20:33:32そういうところなら気持ちよく質問できるんじゃね?
0854デフォルトの名無しさん
2008/10/21(火) 21:49:41>>853
OKWEBってポイントで回答買うのか
ポイントもらった回答者はなんかいいことあるの?
0855デフォルトの名無しさん
2008/10/21(火) 22:45:36見栄が張れます。
また、そのポイントを背景に自分の意見をごり押ししやすくなります。
えぴたんことepisteme氏のように、真摯に回答していると殆どポイントはもらえません。
0856デフォルトの名無しさん
2008/10/21(火) 23:21:46回答トンクス
換金とか物化できるわけではない自己満足ポイントなのね
OKWEBだけが儲かるステキシステムってことか
0857デフォルトの名無しさん
2008/10/22(水) 10:10:55基本的なデータ型・演算・条件文・繰り返し文などを
入門向けのサイトを参考にある程度マスターすることができたと思います
そして、何かひとつソフトを作ってみたいなと思い、ボタン型のランチャーを作ってみようと思いました
そこで質問なのですが、まず、何を学べばウィンドウ(?)とかがでて、タスクトレイに常駐するようなソフト作れるのでしょうか?
いままでは、printfとかを使いコマンドプロンプトで表示などをして学んでいました。なのでそこら辺がよくわかりません
また、それがわかっても多分いろいろ知らないと作れないと思うので参考になるサイト等ございましたら教えていただけると助かります
知識がなくて、もっといろいろ知らないと作れないだろ・・・って思われるかもしれませんが
とりあえず作ってみたいのです。よろしくお願いします。
0858デフォルトの名無しさん
2008/10/22(水) 10:33:35何もしなくてもウィンドウぐらいは出る。
それにボタン貼り付ければボタンも出る。
0859デフォルトの名無しさん
2008/10/22(水) 10:37:15http://homepage2.nifty.com/c_lang/index_sdk.html
このサイトを順番にやっていけばいつか作れる
0860デフォルトの名無しさん
2008/10/22(水) 10:38:36まあVC++2008でウィンドウは、Win32とフォームの2通りあるから
まず自分はどっちでやるか考えた方がいい。
0861デフォルトの名無しさん
2008/10/22(水) 11:53:092005はPlatform SDKを別にインストールしないといけなかったが
2008はSDK付いてる
0862デフォルトの名無しさん
2008/10/22(水) 13:25:550863デフォルトの名無しさん
2008/10/22(水) 13:55:050864デフォルトの名無しさん
2008/10/22(水) 13:56:290865デフォルトの名無しさん
2008/10/22(水) 16:41:21SDK入れなくてもCLRアプリケーションなら作れる。
0866デフォルトの名無しさん
2008/10/22(水) 16:47:19というエラーが出て困っています。再インストールしても直らないんですが具体的にどこが悪いのでしょうか?
2008ではエラーが出ず、他のPCのVC++2005でもエラーが出てないです。
0867デフォルトの名無しさん
2008/10/22(水) 16:56:21ファイル "filename" を開けません。
指定されたファイルを開けません。
ヒント
このエラーには次のような原因が考えられます。
ディスク容量が足りません。
ファイルが存在しません。
ファイル名またはパスの指定に誤りがあります。
ドライブの指定が無効です。
ファイルに適切なアクセス権がありません。
展開した filename のパス名が 260 文字を超えています。
0868デフォルトの名無しさん
2008/10/22(水) 16:58:380869857
2008/10/22(水) 17:10:11回答ありがとうございます。ウィンドウでてくると難しそうだ(^^;
少しずつがんばってみます。
ところでwin32とフォームって違いはあるのでしょうか?
一応検索してみたもののあんまりよくわかりませんでした。メリットデメリットありましたら教えてください。
0870デフォルトの名無しさん
2008/10/22(水) 17:13:41フォームのほうは.net frameworkが必要になるから嫌われてる
俺は好きだけど。
0871デフォルトの名無しさん
2008/10/22(水) 17:19:58空き容量は結構空いてます
SDKとVC++2005再インストールしても駄目だったのでファイルがないってことはないと思う
ディレクトリの設定の項目チェックでは問題なさそう
その他も問題なさそう
>>868
出てないと思います
0872デフォルトの名無しさん
2008/10/22(水) 17:20:200873デフォルトの名無しさん
2008/10/22(水) 17:26:05思うけどなぁ。
0874デフォルトの名無しさん
2008/10/22(水) 17:26:250875デフォルトの名無しさん
2008/10/22(水) 17:29:07再インストールしてみたら?
0876デフォルトの名無しさん
2008/10/22(水) 17:31:07C:\Program Files\Microsoft Visual Studio 8\VC\lib
ここにあるはずだけど
ツール->オプションのVC++ディレクトリに
$(VCInstallDir)lib
はあるかい
0877デフォルトの名無しさん
2008/10/22(水) 17:33:11えーと、環境書いてないから推測になるけど
問題が出るのは2005で、同じPCの2008では出ないということでいいのかな?
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\lib
にlibcpmtd.libは実際にある?
0878デフォルトの名無しさん
2008/10/22(水) 17:33:40ファイル名もわかってて、ディレクトリも問題ないと言ってるくせに
そのファイルが存在するかどうかすら本人が確認できてないってどういうことだ?
0879デフォルトの名無しさん
2008/10/22(水) 17:48:56>>876
$(VCInstallDir)libも設定されてました。
>>877
はい。問題が出るのは2005で
同じPCの2008や、友達のPCの2005ではエラー出ませんでした。
>>878
すみません、遠まわしな言い方で。
そもそもlibcpmtd.libがあるかは真っ先に調べてたんですが、
それで再インストールしてもエラーが出てたので
ファイルがないってことは(チェックもしたし再インストールもしてるので原因では)ないと思う。
ってな意味です
0880デフォルトの名無しさん
2008/10/22(水) 18:23:55いちいち全部入力しなくても補完機能が使えますが、例えばWS_OVERLAPPEDWINDOW
みたいなマクロ名を補完してくれるような機能はないのでしょうか。
0881デフォルトの名無しさん
2008/10/22(水) 18:39:270883デフォルトの名無しさん
2008/10/22(水) 19:01:35おお!やはりありましたか。ありがとうございます。
0884デフォルトの名無しさん
2008/10/22(水) 22:25:16お願いします。
0885デフォルトの名無しさん
2008/10/22(水) 22:26:09javascript のConfirmみたいな機能を使用したいので、以下の関数を使って
みました。
System::Windows::Forms::HtmlWindow::Confirm
ビルドしたところ、以下のエラーがでます
「error C2352: 'System::Windows::Forms::HtmlWindow::Confirm' : 静的でないメンバ関数の呼び出しが正しくありません」
どうすればエラーが出なくなるでしょうか?
0886デフォルトの名無しさん
2008/10/22(水) 22:32:460887885
2008/10/22(水) 23:21:29こういうことでしょうか?
しかしインスタンスを作成しても
「error C2061: 構文エラー : 識別子 'Confirm'」
というエラーが発生します。
0888デフォルトの名無しさん
2008/10/22(水) 23:37:34これは知らんかった
そしてすげぇ
便利すぎ
0889デフォルトの名無しさん
2008/10/22(水) 23:43:42DocumentはOpenしたのか?
そこに行き着くまでに何と何やったか書いてみ。
そもそもMessageBox出したいだけとか?
0890デフォルトの名無しさん
2008/10/23(木) 04:37:35初心者にわかりやすい参考書ってなにかありますか?
できればサンプルプログラムにそって勉強していくみたいなのが
あればいいなと思っているのですが
0891885
2008/10/23(木) 08:01:08メッセージボックスを出したいだけなら
System::Windows::Forms::MessageBox::Show("テスト");
で良いと思います。
WebBrowserを作ってDocumentをOpenしたらビルドまではできました。
どうもありがとうございます。
0892デフォルトの名無しさん
2008/10/23(木) 09:35:350893デフォルトの名無しさん
2008/10/23(木) 16:08:140894デフォルトの名無しさん
2008/10/23(木) 16:24:55でも出てこないのはたぶん、どっかのウィンドウにドッキングして見づらい状態になってるんだと思うよ。
0895デフォルトの名無しさん
2008/10/23(木) 17:54:46ない。
ぶっちゃけVC6のほうが本当の初心者向けの良書がある気がする
はじめてのういんどうずぷろぐらむVC++ ってのがおすすめだが
入手困難な上にVC6でのサンプルなんでVS2005で動かすのが大変
あと2005だとプラットフォームSDK入ってないだろうから
実は初心者には2008のほうがいい
0896デフォルトの名無しさん
2008/10/23(木) 21:00:40Visual Stduio 2005と言っているくらいだから、Expressではないのかもよ。
0897デフォルトの名無しさん
2008/10/23(木) 22:10:24どうすれば2行以上をコピーできますか?
0898デフォルトの名無しさん
2008/10/23(木) 23:39:230899デフォルトの名無しさん
2008/10/24(金) 15:52:03全画面にしたらAlt+7で呼び出し履歴現れました。バグぽいです。
0900デフォルトの名無しさん
2008/10/24(金) 15:53:56だから見えない位置に表示されてるんだろ。
位置修正するかリセットしろよ
0901デフォルトの名無しさん
2008/10/25(土) 00:34:23イベントを分けたいのですが、良い方法はないでしょうか?
if(e->Button==System::Windows::Forms::MouseButtons::Left)
if(e->Button==System::Windows::Forms::MOuseButtons::Right)
こうすれば右クリックと左クリックの区別は可能です。
しかしダブルクリックの場合
treeView_DoubleClick(System::Object^ sender, System::EventArgs^ e);
よりも
treeView_Click(System::Object^ sender, System::EventArgs^ e);
が先に呼ばれ、treeView_DoubleClick は 呼ばれなくなります。
こういう場合は右クリックも左クリックも treeView_Click もしくは
treeView_DoubleClick の処理で統一するしかないのでしょうか?
0902デフォルトの名無しさん
2008/10/25(土) 02:59:00お前何か勘違いしてないか?知識なんて使って減るもんじゃないから只だと思ってんだろ?
人に物を訊くってのがどういう事だか、自覚してる?
知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。使っても減らないけど、教えたら広まった分だけ価値が下がる。それを分けてくれって言ってんの自分でわかってる?
社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。
そういうノウハウを分けてもらう申し訳無さみたいな物が、伝わって来ないんだよ。お前の態度からは。
猿だって仲間から餌を分けてもらう時は申し訳無さそうな顔するんだよ。ヘラヘラ笑いながら近づいてったら殴り殺されんぞ。
猿だったら今頃とっくに死んでんだよお前。そんな態度で今まで。何回も言ったよな。謝る時は申し訳無さそうな顔をしろって。
そういう学校じゃ受けられない教育を受けておきながら、社会人を経験しなきゃ得られない知識を貰っておきながら、
何にも生かせてないんだよ今のお前は。学生のサークルごっこじゃないんだから。もっと四六時中危機感を持って生きてなきゃ駄目だよ。いい加減いつまで学生気分じゃ。
0903デフォルトの名無しさん
2008/10/25(土) 03:24:000904デフォルトの名無しさん
2008/10/25(土) 14:13:12Windows2000上で実行させようとしたら、MSVCP90D.dllが見つかりませんでしたと出ました。
dllを用意しないで実行ファイルに埋め込み(静的リンク?)たいのですが方法がわかりません。
どうすれば、宜しいでしょうか?
0905デフォルトの名無しさん
2008/10/25(土) 14:16:400906デフォルトの名無しさん
2008/10/25(土) 14:33:31よそで実行するのなら、DebugじゃなくてReleaseでビルドすること
それでもMSVCP90.dll(Dの無いほう)が無いといわれたら
redistディレクトリからもってくか、コンパイルオプションでマルチスレッド(/MY)を選んで作り直す
0907デフォルトの名無しさん
2008/10/25(土) 14:34:050909デフォルトの名無しさん
2008/10/25(土) 15:07:32sageろボケ
0910デフォルトの名無しさん
2008/10/25(土) 20:36:58人生もパソコンも困ったときはこれでうまくいく
0911デフォルトの名無しさん
2008/10/25(土) 23:10:07{
// TODO: ここにコントロール通知ハンドラ コードを追加します。
int aka=0, midori=0, ao=0;
CClientDC myDC(&m_pict2);
CRect mySize;
m_pict2.GetClientRect(mySize);
if (m_check1.GetCheck() == BST_CHECKED) aka= 255;
if (m_check2.GetCheck() == BST_CHECKED) midori = 255;
if (m_check3.GetCheck() == BST_CHECKED) ao = 255;
myDC.FillSolidRect(mySize, RGB(aka, midori, ao));
}
ダイアログベースにピクチャコントロールにとボタンとチェックボックス3つ
つかってピクチャーコントロールに色をつけるというプログラムのつもりなのですが
なぜかピクチャーコントロールではなくボタンに色がつくのですが
どこが間違えているのでしょうか
0912デフォルトの名無しさん
2008/10/26(日) 01:03:29>>909
なぜですか?
0913デフォルトの名無しさん
2008/10/26(日) 12:20:53お前笑われてるよ?
0914デフォルトの名無しさん
2008/10/26(日) 14:36:19OnInit以外のところでSetScrollRangeしても反映されないんだけど
0915デフォルトの名無しさん
2008/10/26(日) 15:14:22表示に反映されないだけなら、引数
0916デフォルトの名無しさん
2008/10/26(日) 15:26:42つまみを移動させたところにつまみをセットしたいんだけどクリックを離すと元の位置に戻っちゃう
OnHScrollのnPosはつまみ移動中はその移動中の場所が格納されてるの?
つまみ移動中にGetScrollPosしたときは元の位置じゃなくて、関数実行時の移動中位置を取ってきてるの?
0917デフォルトの名無しさん
2008/10/26(日) 16:38:340918デフォルトの名無しさん
2008/10/26(日) 16:39:060919デフォルトの名無しさん
2008/10/26(日) 16:46:560920デフォルトの名無しさん
2008/10/26(日) 17:10:02ありがとう!
0921デフォルトの名無しさん
2008/10/26(日) 19:47:090922デフォルトの名無しさん
2008/10/26(日) 19:48:24すみません
0923デフォルトの名無しさん
2008/10/26(日) 21:34:19win32コンソールアプリケーション(HelloWorld.c等)のc言語で書かれたファイルをダブルクリックしVC++を起動しても、デバックができません。
毎回、新しいプロジェクト→Win32コンソールアプリケーション→…
とやっていくのは面倒です。
何か簡単な方法は無いでしょうか?
0924デフォルトの名無しさん
2008/10/26(日) 21:39:04ファイル一個で済むなら、コマンドラインで開発するとか。
0925デフォルトの名無しさん
2008/10/26(日) 21:53:45たいていはファイル1個ですむんだけど
どうやってコマンドラインでコンパイルするんだ?
0926デフォルトの名無しさん
2008/10/26(日) 22:09:12VCのbinにパスを通して、vcvars32.batの中を見て環境変数の設定をしておく必要があるな。
0927デフォルトの名無しさん
2008/10/26(日) 22:29:160928デフォルトの名無しさん
2008/10/26(日) 23:39:2601.c
01.c(1) : fatal error C1034: stdio.h: インクルード パスが設定されていません。
>>927
mainは既に使われているとか言われる(´・ω・`)
0929デフォルトの名無しさん
2008/10/26(日) 23:52:06必要なときに実行。
複数バージョンのVC++があるから、コマンドラインはこうしてる
0930デフォルトの名無しさん
2008/10/27(月) 00:06:23イミフ
Path通したらmspdb80.dllが見つからないとか言われて、こいつも通したらstdio.hが無いとかいわれた
>>927
なんかmainがすでに使われてるとか言われるんだが(´・ω・`)
0932デフォルトの名無しさん
2008/10/27(月) 01:19:220933デフォルトの名無しさん
2008/10/27(月) 01:29:31PATHとINCLUDEは違うぞ。それぞれ設定する必要がある。
実行したコマンドラインとエラーメッセージ書いてみ
0934デフォルトの名無しさん
2008/10/27(月) 18:08:20'〜\Debug\〜.exe"を開始できません。
指定されたファイルがみつかりません。
と警告ポップアップがでてしまいビルドできません。
Debugフォルダをみるとexeファイルが無い状態です。
プログラムはかのPCにてコンパイル、ビルドが通るので、プログラムに問題はないと思われるのですが・・・
どなたか、解決の心当たり、ございませんか?
参考程度に出力ウィンドウの出力を載せてみます
>コンパイルしています インテル(R) C++ 9.1 ...(インテル C++ 環境)
1>コンパイルしています インテル(R) C++ 9.1 ...(インテル C++ 環境)
1>マニフェストをリソースにコンパイルしています...(Microsoft VC++ 環境)
1>リンクしています...(インテル C++ 環境)
1>マニフェストを埋め込んでいます...(インテル C++ 環境)
1>
1>ビルドログは "file://C:〜〜\Debug\BuildLog.htm" に保存されました。
1>(ソリューション名) - エラー 0、警告 0
========== ビルド: 1 正常終了、0 失敗、0 更新、0 スキップ ==========
0935デフォルトの名無しさん
2008/10/27(月) 18:12:01そっちのスレのがわからんじゃないかなあ。
0936デフォルトの名無しさん
2008/10/27(月) 18:22:140937デフォルトの名無しさん
2008/10/27(月) 18:22:38ご臨終ですか?
0938デフォルトの名無しさん
2008/10/27(月) 19:08:32びるどろぐ…ですか、読んだことないですが、目を通してみます。
>>937
エラーも警告も出ていないのに、ポップアップがでて、それで終わってしまいます。
現在わかった事ですが、わざとエラーが発生するようなコードに書き換えても、
エラーも何もでず、同じポップアップが出、同じ結果になってしまっています。
先に言うべきでしたが、このアプリケーションは実行した際、ある操作をするとフリーズしてしまうバグがあり、
タスクマネージャを通しても終了出来なかったため、強制的に電源を切るといった事が何度かありました。
自業自得ではありますが、これが発端とは考えています。
0939デフォルトの名無しさん
2008/10/27(月) 19:25:06>わざとエラーが発生するようなコードに書き換えても、エラーも何もでず
コンパイラが対象ソースをまともにコンパイルしてないってことだね。
チェックディスクかけて、vsとiccを削除・再インストールかね。
0940デフォルトの名無しさん
2008/10/27(月) 23:09:17sbar1->SetScrollPos(0);
SCROLLINFO scrollInfo;
void CTestDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
GetScrollInfo(SB_HORZ, &scrollInfo, SIF_ALL);
SetScrollPos(SB_HORZ, scrollInfo.nTrackPos, TRUE);
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
これでつまみを動かすんですが、ドラッグを離すと元の0の位置につまみが戻っちゃいます。使い方あってますか?
0941デフォルトの名無しさん
2008/10/27(月) 23:59:03WindowsXP Professional SP2, VC++2008ExpressEditionでアプリケーションを作成中です。
Releaseまでは出来たのですが、他のPCで出来上がったプログラムを実行すると、
「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。
アプリケーションを再度インストールすることにより問題が解決する場合があります。 」とか言われて動きません。
http://msdn.microsoft.com/ja-jp/library/zebw5zk9.aspxあたりを読んでいるのですが、上手くいきません。
Releaseフォルダは.exeがあるフォルダともう1個ありますよね?
それを全て同じフォルダに入れて、さらにMicrosoft.VC90.CRTも入れましたがダメでした(ExpressEditionには無いと書いてありましたが、ありました)
作成しているアプリケーションの種類はWin32APIを利用するコンソールアプリケーションです
よろしくお願いいたします
0942デフォルトの名無しさん
2008/10/28(火) 03:13:27switch分のcaseラベルごとにアウトラインで折りたたむことは
できますか?できたら方法を教えてください。
0943デフォルトの名無しさん
2008/10/28(火) 06:51:54>>904の話では?
0944デフォルトの名無しさん
2008/10/28(火) 07:58:29#pragma region 名前
〜
#pragma endregion
あらゆる局面に対応できるお得なマルチ兵器
0945デフォルトの名無しさん
2008/10/28(火) 10:20:01ありがとうございました
/MTでいけました
しかし、/MTの意味がわかりません
なにか影響ないのでしょうか?
それと、redistディレクトリは何を指していて、どこにコピーすればいいのでしょうか?
http://msdn.microsoft.com/ja-jp/library/zebw5zk9.aspx読んでもわかりません
ご教示いただけると幸いです
0946デフォルトの名無しさん
2008/10/28(火) 10:26:16/MDがDLLを使う、/MTが使わない指定。
redistは、作成したアプリがどれ使うかによってかわる。
通常は、
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
以下のものでいいでしょ。
コピー先はパスの通ったところまたはEXEのある場所。
共通で使うから、System32の下でいいけどね。
0947デフォルトの名無しさん
2008/10/28(火) 11:37:34フォームにリストボックスを配置して、リストボックスの項目を選択すると
フォームのタイトルがそれに変わる、といった簡単な事をしたいのですがそれすらできません
こういう感じで、みなさん困ったときはどのような手順で解決に向けて進んでいるのでしょうか?
0948デフォルトの名無しさん
2008/10/28(火) 12:18:29Googleで解決しなかったことがない
人に聞くより自分で調べたほうが早いし
0949デフォルトの名無しさん
2008/10/28(火) 12:30:220950デフォルトの名無しさん
2008/10/28(火) 14:32:52ヘルプ巡り疲れたxx
0951デフォルトの名無しさん
2008/10/28(火) 19:47:191>マニフェストを埋め込んでいます...
1>mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "..\Debug\DiceGame.exe". "/;9LR&U~W_
↑のような文が出てきてビルドできません
どうすればできるんでしょうか?
0952デフォルトの名無しさん
2008/10/28(火) 19:54:04* Debugフォルダを削除して、再度ビルド
* アンチウィルスソフトを無効にしてビルド
* VS のメニュー「ツール」-「オプション」で、「プロジェクトおよびソリューション」の「ビルド/実行」にある「並行にビルドするプロジェクトの最大数」を 1 にする
0953デフォルトの名無しさん
2008/10/28(火) 20:36:03自動的に隠したり、分割を×ボタンで消したりする機能のパックになったコントロールとかあるんですか?
0954デフォルトの名無しさん
2008/10/28(火) 20:55:170955デフォルトの名無しさん
2008/10/28(火) 21:49:09アドバイスありがとうございました
オプションの意味理解できました
DLL使う方法はC:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRTコピーしてもダメでした
そのかわり、MSDNに書いてあるvcredist_x86.exeをインストールすることにより、問題解決しました
また、なにかありましたら、よろしくお願いいたします
0956デフォルトの名無しさん
2008/10/28(火) 21:54:56で何も変更せずにReleaseでビルドした実行ファイルを他のPC(Vista)で起動すると
「このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。アプリケーションのイベントログを参照してください。」
って言われて起動できないと言われ。
イベントログ見ると
「のアクティブ化コンテキストの生成に失敗しました。 従属アセンブリ Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" が見つかりませんでした。 」
と何を言ってるのかわからないメッセージが表示されるんだけど、なぜなんでしょうか?
0957デフォルトの名無しさん
2008/10/28(火) 22:00:00マニフェスト関連いじってみては
0958デフォルトの名無しさん
2008/10/28(火) 22:04:05debugフォルダ削除したらできました
ありがとうございます
でもビルドするときに毎回これをしなければならないのでしょうか?
0959デフォルトの名無しさん
2008/10/28(火) 22:14:35そのままリビルドして味噌。
それもまた失敗して、debugフォルダを削除したら成功する、なんて状態だったらまたおいで。
0960956
2008/10/28(火) 22:27:14もしかしてなんかランタイムとか入ってないとダメなのですか?
0961デフォルトの名無しさん
2008/10/28(火) 22:43:36わかりません、どこですか?
0962デフォルトの名無しさん
2008/10/28(火) 23:39:47msvcr90.dllとかと一緒にMicrosoft.VC90.CRT.manifestも添付すれ。
ちなみにSP1当ててる場合は_BIND_TO_CURRENT_VCLIBS_VERSIONでぐぐれ。
0963956
2008/10/29(水) 00:40:46C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcm90.dll
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcp90.dll
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcr90.dll
を実行ファイルと同じディレクトリにコピーして別PCに持っていって実行しても同じエラーです。
ちなみにSP1は当ててないです
0964デフォルトの名無しさん
2008/10/29(水) 00:47:020965デフォルトの名無しさん
2008/10/29(水) 01:07:500966デフォルトの名無しさん
2008/10/29(水) 01:11:51>>962-963のようにすると、今までどおり
EXEファイルと同じフォルダ(など)に置かれたCRTが認識されるので、
ランタイムをインストールする必要がない。
……はずなんだけど、>>963みたいにうまくいかないって話をたまに見かけるんだよね。
>>965
Vistaだと言っているから3.0があるはず。
0967956(解決)
2008/10/29(水) 01:37:47$ diff before after
4c4
< <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
---
> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
ビルドしたほうのPCがSP1で、別PCのほうが無印だったのが原因だったのかな・・・?
0968デフォルトの名無しさん
2008/10/29(水) 02:02:170969956
2008/10/29(水) 02:05:05すみませんすみませんすみませんすみませんすみませんすみませんすみませんすみませんすみませんすみませんすみませんすみませんすみません
そしてこんな遅くまでありがとう!
0970デフォルトの名無しさん
2008/10/29(水) 10:37:45unsigned short は unsigned char 二つ分だから WORD とか、そんな感じな由来なんでしょうか。
0971デフォルトの名無しさん
2008/10/29(水) 10:45:26WindowsだとWORDは16ビットだけど、通常はCPUのビット数と同じ
0972デフォルトの名無しさん
2008/10/29(水) 10:56:58参考になりました。
0973デフォルトの名無しさん
2008/10/29(水) 11:30:24MSソフト風の画面分割スプリット関数を教えてくれー
0974デフォルトの名無しさん
2008/10/29(水) 11:43:44Docking Windowでぐぐれ
0975デフォルトの名無しさん
2008/10/29(水) 12:05:59うおー出てきた、あんがと!
0976デフォルトの名無しさん
2008/10/29(水) 18:45:43あれからまた同じことが起こったので
リビルドしてみてもできなかったのでdebugフォルダ削除したらできました
これは一体何なのですか?
0977デフォルトの名無しさん
2008/10/29(水) 18:48:46なんかアンチウィルスソフトが邪魔してない?
0978デフォルトの名無しさん
2008/10/29(水) 19:20:45オークションとかでVC++4.0とか5.0とか6.0とか手に入れても
MSサポート終わってると使えないの?
それともプロダクトキーさえあれば使えるの?
それとも今なら2005使っとけ?
0979デフォルトの名無しさん
2008/10/29(水) 19:36:52まぁ今からやるならVSでいいんじゃね と思う
0980デフォルトの名無しさん
2008/10/29(水) 19:47:15聞くところによるとVCとVSはIDEのUIとかがかなり違うらしいね
0981デフォルトの名無しさん
2008/10/29(水) 23:12:44ノートン使ってるんですが、どうすれば邪魔しないようできるのでしょうか?
0982デフォルトの名無しさん
2008/10/30(木) 00:03:41ソリューションエクスプローラの「リソースファイル」アイコンを右クリックして
「追加」から「新しい項目の追加」を選択し、
「新しい項目の追加」のダイヤログボックスが表示されるんですが、
そのカテゴリの中に
VisualC++ UI コード プロパティシートしかなく
リソースの項目がないんですがどうすれば出てくるんですか?
0983デフォルトの名無しさん
2008/10/30(木) 00:20:43ノートン先生に このソフトは安全なのでしらべなくていいよ? って催眠かける
0984デフォルトの名無しさん
2008/10/30(木) 00:25:11ググるとノートンと相性悪いケースがちらほらみられるね
対策はわからない、切るか別の製品に変えたのばかり。
Windows98に多いみたいだけどOS何?
0985デフォルトの名無しさん
2008/10/30(木) 01:09:50vistaです。
0986デフォルトの名無しさん
2008/10/30(木) 01:19:28スルーするのは
visual C++ 2008 全体ですか?それとも中のどれかですか?
0987デフォルトの名無しさん
2008/10/30(木) 12:40:51MFCとはまたぜんぜん違う感じなんですけど、これは何を勉強すれば使えるようになってくるんですか?
0988デフォルトの名無しさん
2008/10/30(木) 12:49:51C++/CLIとか、.NET Framework とかで調べるといいと思うよ。
0989デフォルトの名無しさん
2008/10/30(木) 13:29:34これから作るのはMFCよりFormアプリで作っていく方がいいんですか?
MFCがすごくかっこよくなってるんで、なにを勉強しようか悩むんですけど、これはFormアプリに移行するんではなくて好きな方を使っていいってことですか?
大まかになにが違うんですか?
0990デフォルトの名無しさん
2008/10/30(木) 13:39:00あれ、なぜか今ダウンロードできないんだが…
>933
PATHとINCLUDEは別物なんですか…
調べてみます
0991デフォルトの名無しさん
2008/10/30(木) 13:46:01作るのは簡単になるかな
中間言語にコンパイルされるのでVisualBasicでもC#でも同じだからC++にこだわる必要も無いが
あとランタイムがないと動かない
0992デフォルトの名無しさん
2008/10/30(木) 13:51:05当面はMFCでいいと思うけど。SP1当たってからかなりかわったしな。
フォームやるならC#で十分な気もするし。
C++/CLIは、どこまでが.NETでできて、どこがAPIが必要かわかるようになるまでは混乱するかも。
0993デフォルトの名無しさん
2008/10/30(木) 15:01:31で、最初からC#でやっときゃよかったと後悔するんだ。
C++/CLIはアンマネージドな部分が必要なクラスライブラリのための言語だと思う。
デザイナのコードのキモさは一級品だし。
0994デフォルトの名無しさん
2008/10/30(木) 16:35:36特定のメモリ空間(読み)書き検出をすることは可能でしょうか?
0995デフォルトの名無しさん
2008/10/30(木) 16:40:430997994
2008/10/30(木) 17:34:13VC++2008EEではネイティブのみになっています。
ttp://msdn.microsoft.com/ja-jp/library/350dyxd0.aspx
この"ネイティブのみ"というのは、
/clr をつけた実行ファイル全域で使用不可ということでしょうか?
それとも unmanaged にしていれば使用可能ということでしょうか?
当方の状況としては、
[新しいデータ ブレークポイント]という項目が
どこにも表示されていない(グレー表示にすらなっていない)という状況です。
0998デフォルトの名無しさん
2008/10/30(木) 18:01:31で、アドレス空間はプロセスが無いと存在しないから
少なくともデバッグ開始したあとじゃないと、[新しいデータ ブレークポイント]は選択できないよ。
0999994
2008/10/30(木) 18:12:57つまり、プロジェクトの設定でCLRにしていたら、
デバッグをしたい箇所をunmanagedにしていても不可ということでしょうか?
また、コード上にブレークポイントをかけ、
停止したところで[新しいデータ ブレークポイント]を探すのであっていますか?
1000デフォルトの名無しさん
2008/10/30(木) 18:29:2810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。