08/10/31 12:17:44
Part31 スレリンク(tech板)
Part30 スレリンク(tech板)
Part29 スレリンク(tech板)
Part28 スレリンク(tech板)
Part27 スレリンク(tech板)
Part26 スレリンク(tech板)
Part25 スレリンク(tech板)
Part24 スレリンク(tech板)
Part23 スレリンク(tech板)
Part22 スレリンク(tech板)
Part21 スレリンク(tech板)
Part20 スレリンク(tech板)
Part19 スレリンク(tech板)
Part18 スレリンク(tech板)
Part17 スレリンク(tech板)
Part16 スレリンク(tech板)
Part15 スレリンク(tech板)
Part14 スレリンク(tech板)
Part13 スレリンク(tech板)
3:デフォルトの名無しさん
08/10/31 12:18:33
Part12 スレリンク(tech板)
Part11 スレリンク(tech板)
Part10 スレリンク(tech板) ※
Part09 スレリンク(tech板) ※
Part08 URLリンク(pc5.2ch.net)
Part07 URLリンク(pc5.2ch.net)
Part06 URLリンク(pc5.2ch.net)
Part05 URLリンク(pc5.2ch.net)
Part04 URLリンク(pc5.2ch.net)
Part03 URLリンク(pc5.2ch.net)
Part02 URLリンク(pc3.2ch.net)
Part01 URLリンク(pc3.2ch.net)
4:デフォルトの名無しさん
08/10/31 12:21:50
【関連スレ】
■MFC相談室 mfc19d.dll■
スレリンク(tech板)
Win32API質問箱 Build71
スレリンク(tech板)
【C++】 DirectX初心者質問スレ Part19 【C】
スレリンク(tech板)
C言語なら俺に聞け(入門篇) Part 37
スレリンク(tech板)
【初心者お断り】ガチ規格準拠C専用スレ Part133
スレリンク(tech板)
C++相談室 part63
スレリンク(tech板)
C/C++の宿題を片付けます 117代目
スレリンク(tech板)
【初心者歓迎】C/C++室 Ver.60【環境依存OK】
スレリンク(tech板)
【関連サイト】
猫でもわかるプログラミング
URLリンク(www.kumei.ne.jp)
MSDN ライブラリ ※変更された
URLリンク(msdn.microsoft.com)
URLリンク(msdn2.microsoft.com) (2005のことはこっち)
Platform SDK Update ※変更された
URLリンク(www.microsoft.com)
URLリンク(www.google.co.jp)
5:デフォルトの名無しさん
08/10/31 12:24:05
【このスレの前身 VisualC++相談室 過去スレ】
part 1 URLリンク(piza.2ch.net)
part 2 URLリンク(piza.2ch.net)
part 3 URLリンク(piza2.2ch.net)
part 4 URLリンク(pc.2ch.net)
part 5 URLリンク(pc.2ch.net)
part 6 URLリンク(pc.2ch.net)
part 7 URLリンク(pc.2ch.net)
part 8 URLリンク(pc.2ch.net)
part 9 URLリンク(pc5.2ch.net)
6:デフォルトの名無しさん
08/10/31 12:26:49
Platform SDKの中で一番新しいのはこっち
Microsoft Windows Server 2003 R2 Platform SDK Web Install
URLリンク(www.microsoft.com)
(ISO版などあり)
これ以降、Platform SDK + .NET Framework SDKとして
Windows SDKが公開されていて、その中で一番新しいのはこれ。
Windows SDK for Windows Server 2008 and .NET Framework 3.5
URLリンク(www.microsoft.com)
少し前のバージョン(Vista + .NET 3.0の初期版)には日本語版もあったけど、
日本語化されているのは専ら.NET Framework部分だけ。
VC6対応の、最後のPSDKはここ。
URLリンク(www.microsoft.com)
テンプレ終わり。
7:デフォルトの名無しさん
08/10/31 12:54:44
>>1乙!
CPaneDialog::Createのパラメータ、nIDは何を入れればいいんですか?
8:デフォルトの名無しさん
08/10/31 13:52:30
>>1乙
>>7
自分で決めたID
同じ親をもつ同士でかぶらなければいい。
9:デフォルトの名無しさん
08/10/31 15:19:50
>>1
乙です
10:デフォルトの名無しさん
08/10/31 15:57:19
>>8
thx
11:デフォルトの名無しさん
08/10/31 18:52:06
たとえばCRectとかのインスタンスは作った関数を出る前に解放したほうがいいんでしょうか?それとも関数を出る時に変数と同じで解放されるんでしょうか?
12:デフォルトの名無しさん
08/10/31 18:59:01
解放する手段があるってことは解放する必要がある。
でも通常関数内で宣言したら消しようがないべ?
スコープ抜けるときに消えるし、ちゃんとデストラクタも呼ばれる。
ただし、newで作ったら、delete必要。
13:デフォルトの名無しさん
08/10/31 19:20:22
なるほど、普通は関数を出たら消滅するとして、たとえば1秒間に何百回も関数が呼ばれる場合、
何度も同じオブジェクトを繰り返し作るのは速度的な問題以外に何かまずいことはありますか?
14:デフォルトの名無しさん
08/10/31 22:14:57
ダイアログにエクスプローラのように、ファイルを選択していろいろやれるコントロールを追加したいんですが
これはTree Controlで頑張るしかないんですか?
15:デフォルトの名無しさん
08/11/01 01:12:35
>>11
newして作ったのなら開放が必要。auto変数なら無用。
>>13
シングルスレッドに限定すれば速度以外は問題ない。
マルチスレッドの場合に関しては情報不足。
16:デフォルトの名無しさん
08/11/01 09:50:19
Unicode 文字セットを使用して、LPTSTR型の変数の文字列を
コンソール上で出力するにはどうすればよろしいでしょうか?
17:デフォルトの名無しさん
08/11/01 10:08:25
VisualStduio2005EEとVisualStudio2008EEって何が違いますか?
やっとインストール終わったと思ったら20008があると知って変更したほうがいいか調べてます
エディタの使いやすさは変わったでしょうか?
18:デフォルトの名無しさん
08/11/01 10:23:05
>>15
ありがとうございます。メモリが壊れやすくなるからなるべく無駄のないように作るのが普通だとかそういうルールがあるのかとおもいました。
newの意味がやっとわかりました。関数を抜けても消滅させないためにあるんですね。
19:デフォルトの名無しさん
08/11/01 10:32:32
>>16
printfでワイド文字列の書式指定するとか、wprintfみたいなワイド版の関数をつかう。
あとロケールを設定しないと正常に表示されない。
20:デフォルトの名無しさん
08/11/01 10:46:06
Windowsのコマンドプロンプトはchcpでもwcharは表示できないよね
UTF-8なら出来るけど
21:16
08/11/01 10:54:57
>>19
どうもありがとうございました。以下の内容でできました。
setlocale(LC_ALL, "");
printf("%S", LPTSTR);
22:デフォルトの名無しさん
08/11/01 13:26:17
設定に関わらず必ずUnicode文字列と決まってるなら、LPTSTRじゃなくてLPWSTR使っとけ。
23:デフォルトの名無しさん
08/11/01 13:50:40
・Visual C++2008 express
・開発環境・・WindowsForm・windowsXP
プログラムを作ろう!という本を見ながらプログラムを組んでいるんですが、
// dicegame.cpp : メイン プロジェクト ファイルです。
#include "stdafx.h"
#include "Form1.h"
using namespace dicegame;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// コントロールが作成される前に、Windows XP ビジュアル効果を有効にします
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// メイン ウィンドウを作成して、実行します
Application::Run(gcnew Form1());
return 0;
}
この箇所で
1>.\dicegame.cpp(6) : error C2059: 構文エラー : 'namespace'
1>.\dicegame.cpp(6) : error C2238: ';' の前に無効なトークンがあります。
1>.\dicegame.cpp(20) : fatal error C1075: 左側 中かっこ '{' に対応するものが 'c:\documents and settings\user\my documents\visual studio 2008\projects\dicegame\dicegame\Form1.h(4)' で見つかる前に EOF が検出されました。
と言うエラーが出てデザインが表示できないんですが、どなたか原因がわかりますか??
24:デフォルトの名無しさん
08/11/01 14:51:08
>>23
Form1.h側に問題があるんだろ
25:デフォルトの名無しさん
08/11/01 15:00:24
クラスをウィザードで作ったあと、クラスビューを見てもクラスがリストに載ってないんです。
VS2008を再起動して見てみるとリストにあるんですけど、再起動なしで出てくるようにするにはどうすればいいんですか?一度ビルドしてもだめでした。
26:デフォルトの名無しさん
08/11/01 21:55:04
VC++2008EEを使ってCの勉強しようと思ってるですけど
インスコした時の設定のままだとコンパイル等がC++基準になってるじゃないですか
それをC基準にするには設定のコンパイル言語の選択をCにする以外に変えるところはありますか?
あとその設定を既定値にするにはどうしたらいいですか?
よろしくお願いします。
27:デフォルトの名無しさん
08/11/02 03:30:06
拡張子をcにすればc言語、cppにすればC++言語
28:デフォルトの名無しさん
08/11/02 16:57:12
有料版の製品を一切使わずにVC++ 2008 EEを使って
SQL Serverに接続することは可能ですか?
29:デフォルトの名無しさん
08/11/02 20:08:59
可能です。.NET使えば楽だと思う。
VC++ 2008 EEで.NETやるときはC++/CLIという言語で書くことになる。
SQLConnectionで検索してみ。
30:デフォルトの名無しさん
08/11/02 20:33:08
>>29
ありがとうございます。
さっそく検索してみますね。
31:デフォルトの名無しさん
08/11/03 15:28:47
現在Visual C++でゲームを製作していて
URLリンク(homepage2.nifty.com)
を参考にしてアクションゲームを作っているのですが
// マップの描画
{
int i, j ;
for( i = 0 ; i < MAP_HEIGHT ; i ++ )
{
for( j = 0 ; j < MAP_WIDTH ; j ++ )
{
// 1は当たり判定チップを表しているので1のところだけ描画
if( MapData[i][j] == 1 )
{
DrawBox( j * CHIP_SIZE, i * CHIP_SIZE,
j * CHIP_SIZE + CHIP_SIZE, i * CHIP_SIZE + CHIP_SIZE,
GetColor( 255, 255, 255 ), TRUE ) ;
}
}
}
}
// キャラクタの描画
DrawBox( ( int )( PlX - CHAR_SIZE * 0.5F ), ( int )( PlY - CHAR_SIZE * 0.5F ),
( int )( PlX + CHAR_SIZE * 0.5F ) + 1, ( int )( PlY + CHAR_SIZE * 0.5F ) + 1,
GetColor( 255, 0, 0 ), TRUE ) ;
のところを自分で書いた画像に置き換えようとしているのですが、なかなかうまくいきません・・・。
どのようにすればいいのか教えてもらえないでしょうか?
32:デフォルトの名無しさん
08/11/03 21:11:35
状況を「うまくいかない」としか言わない奴には教えない事にしてる。
33:デフォルトの名無しさん
08/11/03 22:45:25
えらそうに
34:デフォルトの名無しさん
08/11/03 22:48:14
いや実際教えようがないだろ。32とは別人だが。
35:31
08/11/03 22:59:47
loadgraphなどを使って画像は表示されるのですが、表示されるだけで動かなかったり。
どうしてもキャラクタの描写を自分の書いた画像に置き換えることができない状態です・・・。
36:デフォルトの名無しさん
08/11/04 09:47:10
お客様にエスパーさんはいらっしゃいますか
37:デフォルトの名無しさん
08/11/04 09:59:15
その動かないコードをなんで書かないんだよ。
間違ってるところも指摘できないじゃないか。
38:デフォルトの名無しさん
08/11/04 10:17:24
知ってることを教えるのとソリューションを提供するのとは別なんだとつくづく
39:デフォルトの名無しさん
08/11/04 11:06:58
DrawBoxやloadgraphなんて聞いたこともない
40:デフォルトの名無しさん
08/11/04 13:38:47
URLにDxLibってあるから想像はつくが>>31
loadgraphが全部小文字なのはおかしいな
41:デフォルトの名無しさん
08/11/04 13:41:54
つーか、普通に貼ったURLのとこちょっと見ただけで普通に画像に差し替えられるが
どこが引っ掛かってるのだろうか。一応絵は出るらしいからパス設定じゃなさそうだし。
42:デフォルトの名無しさん
08/11/04 20:33:37
質問です。
PC初期化したのでVC++を再インスコしたんですが
プログラム書いてもビルドできません。
2~3秒フリーズして「応答なし」
となってしまいます。
これはスペックの問題なんですかね?
OS vista
CPU celeron M
メモリ 2G
のノートPCです。
43:デフォルトの名無しさん
08/11/04 20:39:57
XPでカーソルを変更するにはどうすればいいんですか?
HCURSOR hCursor;
hCursor = AfxGetApp()->LoadCursor(IDC_WAIT);
SetCursor( hCursor );
hCursorがNULLになるんです
44:デフォルトの名無しさん
08/11/04 23:01:29
MSDNライブラリくらい調べてから質問しろよ
45:デフォルトの名無しさん
08/11/05 01:05:52
複数イベントから同一のデータを更新したい場合
たとえばグローバル変数を使って
// グローバル変数
int g_count;
// ボタン1押下時処理
void OnButton1()
{
g_count++;
}
// ボタン2押下時処理
void OnButton2()
{
g_count++;
}
のようにやることができますが、
同様のことをグローバル変数を使わずにやる方法はないでしょうか?
46:デフォルトの名無しさん
08/11/05 01:09:44
あります
47:デフォルトの名無しさん
08/11/05 02:47:47
ダイアログウィンドウで配置しないでクリエイトで作ったCButtonのキャプションのフォントサイズを変更するにはどうすればいいんですか?
48:デフォルトの名無しさん
08/11/05 09:38:48
>>47
言語とか環境は何?
まあWM_SETFONTで。
49:デフォルトの名無しさん
08/11/05 09:39:23
おっと、言語はC++か。
50:デフォルトの名無しさん
08/11/05 10:20:33
CButtonならおそらくMFC
51:デフォルトの名無しさん
08/11/05 10:39:42
ああ、そっか
52:デフォルトの名無しさん
08/11/05 15:46:31
で、CFontがスコープ外れて消滅し
フォントが変わりませんと、また質問が来る・・・と
53:デフォルトの名無しさん
08/11/05 21:45:03
フォントの変更できました。ありがとうございました。
54:デフォルトの名無しさん
08/11/05 21:52:45
ボタンが灰色になっていて押せません。
m_Btn1.EnableWindow(TRUE);
でも
m_Btn1.SetCheck(BST_UNCHECKED);
でも出来ません。起動後一瞬黒くなるんですが、すぐ灰色になります。どういうことですか?
55:デフォルトの名無しさん
08/11/05 22:38:10
iostreamはどこからダウンロードすればいいのでしょうか?
あるいはどこのフォルダに格納されているのでしょうか?
iostreamを用いたプログラミングがしたいのですが…
56:デフォルトの名無しさん
08/11/05 22:43:53
C++で#include <iostream>してエラーが出るなら、再インストールでもしておけ。
57:デフォルトの名無しさん
08/11/05 22:44:03
マウスメッセージはポイントにあるコントロールにメッセージが送られるんですか?
コントロールのクラスを作って、その中でメッセージ対応の処理を書く以外で、クラスを作らずに親ウィンドウでメッセージ処理をするにはどうすればいいんですか?
58:デフォルトの名無しさん
08/11/05 22:45:59
>>56
それででますね…
再インストールしたほうがよさそうですね
59:デフォルトの名無しさん
08/11/05 22:54:51
>>56
あ、違います。
#include <iostream>
じゃなくて
#include <unistd.h>がエラー出てました
unistd.hというヘッダファイルはどうやって登録すればいいんでしょうか?
unistd.hというファイルをどこからかダウンロードして#include ""の絶対パスで指定するんですか?
60:デフォルトの名無しさん
08/11/05 23:06:59
<unistd.h>はUnix/Linux固有のものがいっぱい詰まったヘッダ。
Windowsでいうとこの<windows.h>みたいなもの。
当然VC++用の<unistd.h>なんてない。
ようするに、VC++でそれをコンパイルさせないといけないのなら、
<unistd.h>なしでコンパイルできるようにすることこそがWindowsへの移植という君の仕事。
趣味ならCygwinでGCCでも使っておけ。
61:デフォルトの名無しさん
08/11/06 06:14:00
>>59
とりあえず、エラーが出た
#include <unistd.h>
をコメント行(//)に変えた状態でコンパイルしてみれば、<unistd.h>内で
宣言・定義された関数や定数のうち、実際にプログラム中で使われている
ものだけが未定義エラー等で出力されると思うので、それらの機能や値の
意味を調べて、Windows APIや、Windowsの定数に置き換えてやればよい。
ソース内で使われている場所は、コンパイルエラーや警告が出た行。
エラーとして出ない関数や定数は、今回のプログラム中では使われて
いないので、放置してよい。
バカ正直にUnix互換のライブラリを用意する必要はない。
62:デフォルトの名無しさん
08/11/06 10:01:10
>>54
状況がわからんけど、ハンドラは書いた?
63:デフォルトの名無しさん
08/11/06 16:01:05
>>62
ハンドラはこれだけではダメなんでしょうか?
ボタンが灰色なだけでなく、メッセージも受け取れません。
ヘルプを見れば全てわかるように書いてあるそうですが、仕組みがわからず読み取ることもできません
おしえてください。お願いします。
//FileView.h
CMFCButton m_Btn;
afx_msg void LButtonDown();
//FileView.ccp
BEGIN_MESSAGE_MAP(CFileView, CDockablePane)
ON_BN_CLICKED(7, LButton)
END_MESSAGE_MAP()
CFileView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
m_Btn.Create(_T("OK"), WS_VISIBLE | WS_CHILD, rectDummy, this, 7)
m_Btn.EnableWindow(TRUE);
}
void CFileView::LButton()
{
TRACE0("OK\n");
}
64:デフォルトの名無しさん
08/11/06 17:20:53
2008SP1のMFCはまだ触ってないからよくわからんが、
せめてIDは、、リソースをアクティブにした状態で編集メニューから
リソースシンボル→新規作成で作ってそれ使ったほうがいいぞ・・
今までのViewにそのやり方でボタン貼り付けたら機能するから
CDockablePaneの仕様によるのかもね。
65:デフォルトの名無しさん
08/11/06 17:43:29
2008では、CDockablePaneなんて追加されたのか。
CSplitterWndクラスで作成する分割ウィンドウみたいなやつなら、ペイン
自体はCFrameWndみたいな枠だけじゃないのかな?
何がやりたいのか判らんが、CReBarとCDialogBarとかを使う方が簡単じゃ
ないのかな?
慣れていれば、シンボルはresource.hを直接編集してもいいと思うけど、
とりあえずマジックナンバーはやめようよ。
VC6ではできたのに、2003以降、IDE内で開いているプロジェクトのリソ
ースペインに、他のリソースを開いてドラッグ&ドロップでコピーしたり、
カット(CTRL-X)⇒ペースト(CTRL-V)できないけど、2008って直ってるの
かな? リソース編集しててると、突然IDEが落ちるなんてこともある。
66:デフォルトの名無しさん
08/11/06 18:35:38
ありがとうございます。普通はこのやり方で合ってるというのがわかってよかったです。
ボタンではなくてドックパネルを徹底的に調べてみます。
他のコントロールは継承クラスを作ってそこでメッセージ処理をしていたのですが、
さすがにボタン1つのメッセージ処理のためにクラス作成は酷いんじゃないかと思い、、、が、うまくいかずはまりこんでしまいました。
マジックナンバーはアプリウィザードで作られたひな形がCreateのなかで連番を使っていたので
そのまま続きの数字を使って追加してしまいました。いつかはIDSの登録物と重なるし、オブジェクトが判別しづらいのでは?とは思ったのですが
全て修正しないと気持ちよくないし、ひな形の流れに負けて連番にしてしまいました。
67:デフォルトの名無しさん
08/11/07 00:00:29
子ウィンドウから親ウィンドウで作ったオブジェクトのメンバ関数にアクセスするにはどうすればいいんですか?
68:デフォルトの名無しさん
08/11/07 02:44:59
解決しました
69:デフォルトの名無しさん
08/11/07 13:01:28
プリコンパイル済みファイルの名前のStdAfxってどういう意味をもっているんでしょう?
変更することもできるけれど、気にせずにそのまま使うのが普通なんでしょうか。
70:デフォルトの名無しさん
08/11/07 20:45:09
俺が前にここで聞いた時にはStandard Application Frameworksの略だって聞いた。
71:デフォルトの名無しさん
08/11/08 02:29:25
すみませぬ、質問させて下さい。
VC++2008で簡単なコンソールアプリを作ってみたのですが、
これをビルドして他人に渡してもエラーが出て実行できません。
他人のWindows環境で動作させるにはどのようにビルドすればよいのでしょうか?
72:デフォルトの名無しさん
08/11/08 03:38:22
自己解決しやした。
73:デフォルトの名無しさん
08/11/08 04:42:30
さっぱりわからんので教えてください。
VC++2008ExpressEditionで、Formでプログラムを作り始めて、
スクロールバーを縦横で表示・非表示を切り替えたい時、
ツールからフォームに貼り付けるとこうなります。
↑
← →↓
のように右下に小さい四角が出来ません。
↑
↓
← →□
こんな風にしたい
上手いことスクロールバーを表示するにはどこをいじればよいでしょう?
74:デフォルトの名無しさん
08/11/08 18:01:28
貼り付けるんじゃなくて、Formが
内蔵しているメンバを弄るの。
this->HorizontalScroll->Visible = true;
this->VerticalScroll->Visible = true;
とか何とか
75:デフォルトの名無しさん
08/11/08 23:48:18
お手数ですが質問させてください。
SystemTimeToVariantTime
関数をを使いたいのですが、使用すると以下のエラーが発生します
error LNK2001: 外部シンボル ""extern "C" int __stdcall SystemTimeToVariantTime(struct _SYSTEMTIME *,double *)" (?SystemTimeToVariantTime@@$$J18YGHPAU_SYSTEMTIME@@PAN@Z)" は未解決
です。
調べたところ、SystemTimeToVariantTimeを使うにはole32aut.lib
が必要そうなのですが、どうやって ole32aut.lib を手に入れればよいか
わかりません。(そもそもole32aut.libがないのかエラーの原因
なのかも微妙なのですが)
環境は Visual C++ 2005 Express です。
76:デフォルトの名無しさん
08/11/08 23:51:39
>>75
Windows SDKをインストールしろ。
インストールしたら、スタートメニューのMicrosoft Windows SDKの中のどっかにVisual Studioとの統合みたいな項目があるからそれを叩け。
77:75
08/11/09 00:16:12
ありがとうございます。試してみます。
78:デフォルトの名無しさん
08/11/09 06:00:14
ウィンドウに、ダイアログリソースを張り付ける手順は
・ダイアログリソースを作成
・スタイルを子に設定
・ウィンドウのOnCreate関数に
CDialog m_Dialog1;
m_Dialog1.Create(IDD_DIALOG1, this);
と
CRect rectClient;
GetClientRect(rectClient);
m_Dialog1.SetWindowPos(NULL, rectClient.left + 1, rectClient.top + 1, rectClient.Width() - 2, rectClient.Height() - 2, SWP_NOACTIVATE | SWP_NOZORDER);
を追加
これ以外になにをすればいいんですか?
これでコンパイルできるのですが、向こう側が透けて見えてダイアログが表示されないんです。教えてください。お願いします
79:デフォルトの名無しさん
08/11/09 09:10:18
URLリンク(msdn.microsoft.com)(VS.80).aspx
MFC ライブラリ リファレンス
CDialog::Create
リソースからダイアログ ボックス テンプレートを使ってモードレス ダイアログ ボックスを作成します。
親ウィンドウを作成したときにダイアログ ボックスを表示する場合は、
ダイアログ ボックス テンプレートで WS_VISIBLE スタイルを使用します。
それ以外の場合は、ShowWindow 関数を呼び出す必要があります。
80:デフォルトの名無しさん
08/11/09 09:49:37
>>79
できました。ありがとうございました!
81:73
08/11/09 14:44:41
>>74
明日早速やってみます!
82:デフォルトの名無しさん
08/11/09 20:09:18
いままでVC毛嫌いしててBCC使ってたけど、VCなかなか便利じゃないか
引数の型とかを教えてくれるのが感動した
83:デフォルトの名無しさん
08/11/11 07:41:54
すいません、自分のIPアドレスを変更するにはどうしたらいいのでしょうか。
確保するのはすぐに判ったのですが、変更方法がさっぱりです。
84:デフォルトの名無しさん
08/11/11 08:00:29
ダイアログ画面の中のコントロールをすべて再描画するにはどうすればいいんですか?
85:デフォルトの名無しさん
08/11/11 11:39:36
VC++をこれから始めようとしているものです解説書見ながらサイコロゲームを作っているところです
VC++2008WindowsXP
実は他の方のサンプルを試してみたいのですが
サンプルの使い方もわかりません
手持ちの解説書にはそういうことは書いてありませんのでどなたかお力貸してください
下記は先人の方が質問されて、大先輩の方がサンプル付きで解答されています
上のアドレスが最初の質問で下のアドレスが2回目の質問のようです
最終的にはサンプルの全角空白(書いた方がわざとそうしています)を半角空白にして
SendInput()関数を入れると問題なく動いているようです
質問「キーの自動入力」
URLリンク(okwave.jp)
URLリンク(soudan1.biglobe.ne.jp)
質問者の方と私は環境が似ているので
このサンプルを動かしてみたいのですが
VC++の開き方すらよくわからない状態ですので
どなたかわかるように説明していただけないでしょうか?
私がやったこと
サンプルの全角空白を半角空白に8箇所直した
VC++2008を起動する→ファイル→新規作成→プロジェクト→Win32→
Win32プロジェクト→プロジェクト名入力→OK
(Win32アプリケーションウィザード)次へ→何も変更しないで完了
出てきた”(グローバルスコープ)”というソースコードのページの
どこに上記のサンプルを貼り付ければいいでしょうか?
”// TODO: ここにコードを挿入してください。”の部分へ貼り付けたり
・このときエラーはいっぱい出ました
わからないので全てを削除して貼り付けてみたりしましたがビルドできません
・この時のエラーは下記の1つでした
fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
VC++2008の開き方、サンプルの張り方教えてくださいm( _ _ )m
86:デフォルトの名無しさん
08/11/11 11:50:54
どの部分が抜粋でどの部分が関数丸ごとかわかるようになるまで
もっと初歩的なことやったほうがいいと思うよ。
87:デフォルトの名無しさん
08/11/11 11:53:48
>>86さん
そこをなんとか教えていただけないでしょうか?
よろしくお願いします
取りあえずサンプルの全角空白を半角空白に直した後どうすればよいのか教えてください
お願いします
88:デフォルトの名無しさん
08/11/11 12:00:55
VOID setKeybrd( LPINPUT lpKey, WORD wVKey, BOOL bKeyDown )
{
・
・
}
これが関数だよ。
適当に最後にでも置いて、
VOID setKeybrd( LPINPUT lpKey, WORD wVKey, BOOL bKeyDown );
の1行を先頭のほうの
// このコード モジュールに含まれる関数の宣言を転送します:
のあたりにでも置いておく。
INPUT Key[ 2 ];
・
・
・
if ( SendInput((UINT)(lpKey - Key),Key,sizeof(INPUT)) == (UINT)(lpKey - Key) ){
//”S”を押すと実行する既存のプログラム
}
これが本体だ。
自分が使いたいとこに置けばいい。
この使いたいところ、ができないうちは何もできんからあきらめろ。
{} でくくって case IDM_ABOUT: の次あたりに放り込んでもいいけどな。
89:デフォルトの名無しさん
08/11/11 12:10:40
>>88さん
マジでありがとう(;´д⊂ヽ
どうしていいのかわかんなくて困ってたんです
使いたいところってのはまだ(ソースコード作って)ないんです
取りあえずこのサンプルだけで自分の環境でも動かせないのか知りたかったんです
詳しく本当にありがとうございました
助かりました心から感謝してます
ありがとうございましたm( _ _ )m
90:デフォルトの名無しさん
08/11/11 16:54:06
お世話になります
VC++とC++の違い教えてください
C++のサンプルコードはVC++でコンパイルできますか?
先ほど1時間かけてこの地方で一番大きな本屋さんへ行って解説本を2冊購入したのですが
なんと!
帰りの電車の中で気づいたのですが1冊はVC++ではなくC++用だったんですorz
まだレシート持ってるから電話して交換してもらった方がいい?
自分としては応用できそうならこのままこの本で勉強したいです
その本は「○○の絵本」シリーズでちょっと有名な本です
挫折はしましたがJAVAやPHPの時も購入して良本というイメージがあったんです
それで「VisualC++500の極意」と「C++の絵本」を持ってレジに行って買ったんです
内容的にはCを知っている方にC++とはこういうものですって感じです
私はCを習得したわけじゃないですけど
なんとなくわかります
Cで使ったPrintfのソースをそのまま使えるけどエラーが出ます、それは戻り値がないからで
そのままでも問題はありませんが気になるのならmainの前に型intを付けて最後にリザルト0をつければいい
こんな感じでわかりやすいんです
私が実際に使っていこうとしてるのはVC++EEなのでC++との違いが気になります
前置き長くなり申し訳ないです
C++のサンプルはVC++で使えますか?
よろしくお願いいたします
91:デフォルトの名無しさん
08/11/11 16:59:22
なんかこの手の質問多いな。
C++は言語の名前、VC++はC++で開発するための製品、の名前。
92:デフォルトの名無しさん
08/11/11 17:03:05
>>91さん
即レスどもありがとです!
ということは問題無しですね
ドキドキしちゃったよ
教えてくれてありがとうですm( _ _ )m
93:デフォルトの名無しさん
08/11/12 14:44:55
話にならん低脳っぷりだな……小学生か。
94:デフォルトの名無しさん
08/11/14 00:54:01
超初心者ならしょうがないでしょ
VC++とC++で迷うのは想定外だったけど
確かに知らなかったら迷うよなーとは思った
95:デフォルトの名無しさん
08/11/14 01:57:51
初心者とか関係ないだろ。
人に聞く前に検索すれば済む話。
96:デフォルトの名無しさん
08/11/14 06:39:48
理解できてる人だけが検索する単語を絞ることができる
97:デフォルトの名無しさん
08/11/14 10:36:02
こんちわ
お世話になります
先輩たちのお陰でなんとかブラウザ作れましたありがとうございます
(実は解説本、そのまんま^^)
これでファイルの読み書きとあわせて2つのことができるようになりましたw
ありがとうです
この先、目標はブラウザで読み込んだテキスト内で文字検索して保存するです
例えばヤフーのトップ画面を見て「年金」や「少年」という文字を検索して
あればその記事を保存するってことをやってみたいです
やりかたとしてテキストファイルに保存しないで
トップ画面をダウンロードしながら検索もする方法を希望です
多分これが一番早い方法だと思うからです
ダウンロード中のヤフートップ画面から文字列検索する方法教えてください
ブラウザを作れたと言っても解説本のまま入力して作っただけなので
私はまだ難しいことは一切わかりません
ヤフートップ画面のテキストを保存する方法もわかりません
どなたか優しく教えてください
お願いします
98:デフォルトの名無しさん
08/11/14 11:06:23
Visual C++ 2005 EEを使っています。
C++の参考書などでは、 new で配列を確保した場合に開放は delete [] で行うとなっていますが
タスクマネージャで使用メモリを調べてみると、delete [] ではなく delete のみの表記でも
同じように開放されているようです。
(MB単位の配列の new と delete を何千何万回繰り返しても、使用メモリが増加していかない)
これは、VC++ではdeleteの配列開放処理についてはコンパイラが
面倒をみてくれるという事でしょうか?
それとも、現在のC++では delete でも delete [] でもどちらでも問題ないのですか?
99:デフォルトの名無しさん
08/11/14 14:21:59
>>98
new[]したなら必ずdelete[]。deleteするのは[]の無いnewしたもの。混同しちゃダメ。
コンストラクタ/デストラクタが無いものだと問題が起きない場合もあるのかもしれないけど。
100:デフォルトの名無しさん
08/11/14 14:44:54
>>99
レスありがとうございます。
なるほど、単純なデータ配列ではなくて、コンストラクタやデストラクタのある
オブジェクト配列だと問題が発生するということですか。
メモリの開放自体がされないわけではなく、そういったオブジェクト内部処理に
問題が発生するという解釈でいいですかね。
単純なデータ配列(int配列のような)の場合に何か問題が起きる事例はありますか?
もちろん本来の記述ルールとして[]を付けるというのはわかってはいますが、
具体的にどういう問題が出るのかというのがいまいち良く分かりません。
101:デフォルトの名無しさん
08/11/14 14:55:23
未定義なんだったらメモリ開放しようが、デストラクタ呼ぼうがVC++の勝手だろ・・・
102:デフォルトの名無しさん
08/11/14 14:58:13
何が未定義
103:デフォルトの名無しさん
08/11/14 15:10:06
いいページがあった
URLリンク(m--takahashi.com)
>多くの処理系では、先頭の一つだけデストラクタが動き、
>そして全部解放されます。
という事らしい
なのでVC++の場合には単純データ配列は全開放されるということね
つけないよりは付けた方が安全ではあるけど
104:デフォルトの名無しさん
08/11/14 15:22:19
なんでこういう方向に行っちゃうのかな・・・。
new[]してdeleteは単純に間違い。
105:デフォルトの名無しさん
08/11/14 15:22:55
でも結構、「配列の最初の1要素しか開放されない」って言い切った説明をしてる奴が多いよな。
未定義のものは未定義でいいけど、間違った説明はいかんよね。
106:デフォルトの名無しさん
08/11/14 15:26:26
>>104
頭固いな
ここはC++のスレじゃなくてVC++のスレだから、
VC++としての挙動についての話をしてるだけだよ
もちろんC++のルールとしては間違いだ
107:デフォルトの名無しさん
08/11/14 15:31:37
MSがドキュメントとして明言してない限り、未定義の動作であることにかわりないんではないだろうか
誰か該当する文書知らない?
108:デフォルトの名無しさん
08/11/14 15:41:47
VC++でのコードでもまず確実に間違い。
VC++がそういう動作をすることを狙ってわざとそんなコードを書いたって、全く利点無し。
109:デフォルトの名無しさん
08/11/14 15:49:53
>>108
あれか、委員長タイプか。ルール絶対主義というか
誰一人正しいか間違いかなんて質問はしてないだろうに
間違った記述をした時にこういう風に動くって事を知っておくだけでも
デバッグする上では役にたつもんだぜ?
110:デフォルトの名無しさん
08/11/14 16:11:33
イインチョタイプワロタw
111:デフォルトの名無しさん
08/11/14 16:26:57
>>105
多いなそういう本やサイト
思い込みだけで書いてるのは本当に困る
112:デフォルトの名無しさん
08/11/14 16:41:25
>>97
まず自分で調べてある程度のコードを書いてから出直してこいよ
113:デフォルトの名無しさん
08/11/14 20:25:13
こんちわ
お世話になります>>97です
何をどう調べればいいのかもわかんないんですよ
作成したブラウザでヤフートップを表示しているので
ヤフートップページのテキストは取り込めているとは思うのですが
どうやって文字を検索するのかわかんないです
すいませんが何を調べればいいのか教えていただけないでしょうか
お願いします
114:デフォルトの名無しさん
08/11/14 20:28:57
そんな手とり足とり教えるには、掲示板という仕組みは非効率すぎる。
115:デフォルトの名無しさん
08/11/14 20:29:24
>>103
ありがとうございます。参考になりました。
やっぱりそういう動きになっているんですね。
116:デフォルトの名無しさん
08/11/14 20:33:40
>>113
さようなら\(^o^)/
あなたのような人はプログラムなんてやめてパソコンを廃棄するのがベストかと
117:デフォルトの名無しさん
08/11/14 20:50:38
なんで?
みんなできないくせに解答してるとか???
118:デフォルトの名無しさん
08/11/14 20:51:40
ヤフートップページを読み込んで任意の文字列を検索して保存する方法教えてください><
119:デフォルトの名無しさん
08/11/14 20:54:19
<a>タグ内の文字列調べて、キーワードが入ってたらそのurlのページをダウンロードして保存すればいい。
HTMLについては勉強した?
120:デフォルトの名無しさん
08/11/14 21:10:33
socketから直に受信データ取ってパーサ作らないと無理だろ・・・IWebBrowserしか知らん俺なんかは
121:デフォルトの名無しさん
08/11/14 21:15:35
>>120
IWebBrowserがあるなら、そこからIHTMLDocument2辺りを取得すれば、
HTML内のJavaScript同様、DOMでぐりぐり探れる。
122:デフォルトの名無しさん
08/11/14 21:36:13
>>119
誰がURLの話なんかしてるんだ?
HTMLから取得ってそのHTMLから取得する方法を聞いてるんだけど
どうやって取ればいいのかわかんない
一応、正規表現とかちょっとくらいはわかるよ
123:デフォルトの名無しさん
08/11/14 21:41:03
トップページのリンクから該当記事をDLするんじゃないのか?
トップページには記事おいてないぞ リンクが貼ってあったとしても
124:デフォルトの名無しさん
08/11/14 22:03:49
だから、そのリンク先は作成したブラウザで見れるんだけど
見るだけで、どうやればここから文字列を取得するのかがわかんないんだ
どこに対してどういう命令出すのかがわかんないんです
125:デフォルトの名無しさん
08/11/14 22:05:23
>>124
>>121
126:デフォルトの名無しさん
08/11/14 22:14:08
この質問者が日本人に思えないのは俺だけですか?
127:デフォルトの名無しさん
08/11/14 23:25:17
>IHTMLDocument2辺りを取得すれば
これわかんないんです
WEBブラウザの命令でそういうのがあるんですか?
WEBブラウザを調べたけどわかりません><
128:デフォルトの名無しさん
08/11/14 23:29:19
検索しろよボケ
一週間はレスすんなゴミクズが
129:デフォルトの名無しさん
08/11/14 23:32:10
ボケとかゴミクズとか何それ
お前どこのがきや
130:デフォルトの名無しさん
08/11/14 23:32:41
>>128
はよ答えろやカス
131:デフォルトの名無しさん
08/11/14 23:34:00
>>128
できないくせに解答者やってる奴ってお前のことかwww
はらいてー
なんでそんなに怒ってるの?
たかが2chでwww
132:デフォルトの名無しさん
08/11/14 23:34:23
>>130
IWebBrowser2のDocumentプロパティ
133:デフォルトの名無しさん
08/11/14 23:35:07
おい>>128
お前は頭わるくは無いと自分では思ってるようだが
要領は最高に悪そうだな
意味もわからんやろなw
134:デフォルトの名無しさん
08/11/14 23:36:41
>>132
それでいけるんですか
ありがとです
とりあえず>>128の小僧はこの先、解答すんなよ
知っててもしゃべらねくていいから
つーかお前出入り禁止
もうくんなカス
135:デフォルトの名無しさん
08/11/14 23:38:05
喧嘩両成敗ってことで>>134も出入り禁止な。そしたらたぶん賛同を得られると思う。
136:デフォルトの名無しさん
08/11/15 01:31:35
単語もでてるのに検索しないでわめき散らすだけか
アホとしか
137:デフォルトの名無しさん
08/11/15 11:35:22
自分で調べようともしない教えて君ってホント痛いな
138:デフォルトの名無しさん
08/11/15 11:51:38
ソースの編集は外部エディタのみで行い、VC++のエディタではread onlyで書き込みできないようにして開きたいんですが
設定で可能ですか?
139:デフォルトの名無しさん
08/11/15 15:49:42
ブラウザがどうたら言ってるのは釣りにしか思えん。
本気だったら病院から書き込んでるに違いない。
140:デフォルトの名無しさん
08/11/15 16:46:39
DQNてのはこんなもんだよ
期待しちゃ駄目
141:デフォルトの名無しさん
08/11/16 14:26:41
まさにこれからVC++2008EEを使ってプログラムを勉強しようとしている初心者です。
お勧めのサイトや書籍がありましたら教えてください。
とりあえずは猫でもわかるプログラミングを見て勉強しようと思ってます。
142:デフォルトの名無しさん
08/11/16 14:28:05
お前の現在のプログラミングに対する理解度による
全くの初心者なら猫でも~でいいよ
143:141
08/11/16 14:33:16
さっそくありがとうございます。
昔N88BASICとCをちょっとかじりました。
とはいえX6800とかの時代なので、最近のWindowsプログラミングはさっぱりな感じです。
144:デフォルトの名無しさん
08/11/16 20:03:38
>>143
C++を勉強しつつ
Windowsプログラムの作法を勉強しなきゃならん
っていうのが初学者が投げ出してしまうところ
最初は
CとWin32APIっていうのが無難なのかなあ
145:141
08/11/16 21:09:08
>>144
なるほど、とりあずCからやってみているので、ある程度形になったらWin32APIを勉強してみます。
ありがとうございました。
146:デフォルトの名無しさん
08/11/16 23:00:03
EEはリソースエディタが無いのが痛いね
フリーのツールつかえばええやんって言うだろうが
初心者ほどまとまったパッケージがオススメ
つーことでウインドウプログラム作る様になったら
2万円もしないんだしStd買っちゃいな
クラス図も作れるし
147:デフォルトの名無しさん
08/11/16 23:00:19
昔のWin32APIを勉強してた自分を振り返ると、デバッグが上手ければもっと楽に習得できたと思った
VSの呼び出し履歴とか最初全然使ってなかったなぁ( ´ω`)
148:デフォルトの名無しさん
08/11/17 02:23:10
こんちわお世話になります
intについて聞きたいです
整数型の型名にintってありますよね
この型名のintと
関数mainの前に書かれているintは同じなのでしょうか?
私の所有する解説本ではmainについて
int main (void) メイン関数の定義開始
とだけ説明しているだけなのです
意味を並べていくと
int:整数型の型名 main:main関数の定義開始 void:戻り値のない評価式
ってことですよね
なぜmainの前にintを書くのか凄く気になります
勝手に想像しちゃうと
最後に書かれているreturn 0(戻り値が0なら正常終了、それ以外なら異常終了)
このゼロは整数なのでintを記載するのかな?
main関数定義開始の行頭にintはなぜですか?
私の所有する解説本は結局、最後のページまでこのことには触れていませんでした
勝手な推測してしまいましたが
どなたか正しい答え教えてください
149:デフォルトの名無しさん
08/11/17 02:35:43
あなたのもってる解説本が糞だということはわかりました。
150:デフォルトの名無しさん
08/11/17 02:39:05
int main( void )
↑ ↑ ↑
戻り値 関数名 引数
これを見て意味が分からないのであればプログラムはあきらめて下さい。
151:デフォルトの名無しさん
08/11/17 02:55:27
いやいやw、それで諦めるのはまだ早いだろ。
まだ148の読んでいた本がダメすぎただけという可能性が高いということしか分からない。
152:デフォルトの名無しさん
08/11/17 03:15:01
わかった!
>>150さんのでわかったよ
みなさん夜分お疲れのところありがとうございましたm( _ _ )m
153:デフォルトの名無しさん
08/11/17 03:18:47
ていうか
私の推測は当たってたってことですよね
もしかして私はセンスあるのかなwww
154:デフォルトの名無しさん
08/11/17 06:15:26
こんちわお世話になります
有料でも構わないのでC++の質問すれば
私が理解できるまで懇切丁寧に教えてくれるサイトないですか
解説本は解説するために専門用語連発でわかりにくい部分があるんです
その専門用語を解説するページが無いので
結局、解説本→グーグル→解説本→グーグル(たまにIT辞書) こんな感じです
進行するのがかなり時間かかってしまいます
かと言って基礎をすっ飛ばすわけにもいかず
超初心者用とか超入門とか書いてあっても中身は専門用語だらけ
無料の掲示板では解答者の善意で教えてもらってるわけで
解答者もいちいち注釈つけてられないですよね
てことで嘘つき解説本はタイトルに「超入門」とか「超初心者」とか書いてるけど
内容は本当の初心者にでもわかるものはないですね
だいたい解説に注釈無しで専門用語を使うこと自体
初心者には無理。
著者はタイトルに美味しそうな単語並べてとにかく売れる事が優先のものばかり
教えることが大前提の本はないでしょうか
超々ーーーぉ入門者でも理解できるサイト(有料可)か解説本教えてください
155:デフォルトの名無しさん
08/11/17 09:00:29
わかるまで懇切丁寧に教えて欲しいのならば学校に通ってください。
あなたの知能レベルで理解できるかどうかなど他人にわかるものではありませんよ。
156:141
08/11/17 09:35:16
>>146
stdは2005EEからのアップデートが可能みたいですね。
確かにそれなら安いし購入も検討します。
まだリソースエディタがフリーだとどう辛いのかもわかりませんが…
157:デフォルトの名無しさん
08/11/17 23:12:09
リソースエディタだけIDEに統合されてない
フリーソフトを使うってのは辛いって話でそ
158:デフォルトの名無しさん
08/11/18 00:56:24
coutとprintfの違いを教えてください
159:デフォルトの名無しさん
08/11/18 07:46:21
>>158
coutはC++でしか使えない
printfはCでも使える
160:デフォルトの名無しさん
08/11/18 07:51:42
URLリンク(www.asahi-net.or.jp)
こちらのサイトを参考にしてVisual C++ 2005で練習をしているところなのですが
完成したプログラムを「デバッグ開始」で動かそうとすると、
一瞬だけコマンドプロンプトの黒画面が出て、すぐに消えてしまいます
最初のうちは普通に実行され、黒画面が残ったままになったので
設定を間違えて弄ってしまったのかもしれません
原因、元に戻す方法がわかる方はいらっしゃいませんか?
161:デフォルトの名無しさん
08/11/18 09:02:07
リソースエディタなんてフリーで問題ないよ
どの道付属のアイコンエディタは使い物にならんし
162:デフォルトの名無しさん
08/11/18 09:03:33
>>160
最後にgetch()を入れればキーを押すまで画面がとまるよ
163:デフォルトの名無しさん
08/11/18 10:05:38
>>159
了解です
Printfで書くようにします
Cout使わないといけない場合なんかはないですよね
ありがとうございます
164:141
08/11/18 10:18:26
>>157
解説ページなどでResEditやXN Resource Editorでそれほど問題なさそうだったので、
どのようなデメリットがあるのかよくわからないということでした。
わかりにくくてすみません。
とりあえずフリーのものでやってみようかなと思います。
165:デフォルトの名無しさん
08/11/18 16:42:30
>>162
ありがとうございます
でも最後にgetch();を付けるとエラーが…
「デバッグ無しでビルド」を選択したら
とりあえずは消えない様になりました
166:デフォルトの名無しさん
08/11/18 16:44:50
そもそもデバッグしないでいいならCtrl+F5で実行すりゃいい
167:デフォルトの名無しさん
08/11/18 17:21:41
あとは
1.system("pause");
2.getchar();
3.main関数の最後の行("}")にブレークポイントをいれる
から好きなのを選べばいいと思うよ
168:デフォルトの名無しさん
08/11/19 12:30:43
今まで少しの間でしたがVC#2005EEを使っていました。
今日からC++を学ぼうと思い、VC++2008EEを使ってみたのですが
コード補完機能がないのが気になりました。
VC#2005EEのときは、1文字目から予測リストが出てくるので非常に使いやすかったのですが
VC++2008EEにはそのような機能はないのでしょうか。
169:デフォルトの名無しさん
08/11/19 13:32:24
>>168
ないよ
せいぜい関数の引数リストやクラスのメンバリストが出る程度だがそれでもないよりましだ
170:デフォルトの名無しさん
08/11/19 13:33:56
あ、そういえばCtrl+スペースで出たな
171:デフォルトの名無しさん
08/11/19 13:51:54
質問です。Visual C++2005を使っています。
プロジェクトをつくるとそのフォルダにReadMe.txtが自動で作られますが
ここに各ソースファイルの簡単な説明を追記したいのですが、どのようにすればよいのでしょうか?
作成されたReadMe.txtの最後の方に、
「AppWizard では "TODO:" コメントを使用して、ユーザーが追加またはカスタマイズする
ソース部分を示します。」とか書いてあるのですが、
各ソースファイルのコメント部分にTODO:と入れればその行が自動的に
ReaMe.txtに出力されるのかと思ったのですが、なんともなりません。
何かやり方が違うのでしょうか?
そういったReadMe.txtへの説明の自動追記機能はありますか?
それともRedMe.txtを直接開いて手書きで説明を加えなくてはならないのでしょうか?
172:デフォルトの名無しさん
08/11/19 13:52:53
あ、>>171はVisual C++ 2005 Express Editionです。
ひょっとしてエディションの問題???
173:デフォルトの名無しさん
08/11/19 16:06:59
>>165
コンパイルエラーならconio.hがインクルードされてないとかじゃね
174:デフォルトの名無しさん
08/11/19 16:13:36
// TODO: ここにコマンド ハンドラ コードを追加します
175:デフォルトの名無しさん
08/11/19 16:19:32
TODOコメント使うのはAppWizardであって、ユーザー(あなた)ではない
AppWizardがあなたが追加、またはカスタマイズすべきソース部分を教えてくれているだけ
AppWizardが生成するReadMeはあなたに対する説明文であって、あなたのアプリケーションを使う人に対するものではない
176:デフォルトの名無しさん
08/11/19 16:43:17
>>169
レスありがとうございます。たしかに、ないよりはましですね。
もやもやがなくなったので勉強してきます。
177:デフォルトの名無しさん
08/11/19 16:45:48
>>174-175
レスありがとうございます。
えーと、つまりReadMe.txtもTODO:コメントも、後から
自分で追記したりするようなものではないということでいいんでしょうか?
ReadMe.Txtはプロジェクト作成時にVCが自動作成したファイルだけを示し、
その内どこをいじるのかがTODO:コメントで指示されるという解釈であってますか?
178:デフォルトの名無しさん
08/11/20 19:29:23
いやあれウィザードが吐くだけの固定コメだから
メッセージマップとかをクラスのプロパティからいっぱい作って見れ 全部同じコメだ
179:デフォルトの名無しさん
08/11/21 12:12:07
int型のポインタを宣言するときは
int* pA; とするのがいいのか
int *pA; とするのがいいのか教えていただけませんか。
テキストにはどちらでも良いと書いてありましたが、できれば多数派に合わせておきたいので・・・
180:デフォルトの名無しさん
08/11/21 12:36:44
>>179
ポインタをtypedefする
typedef int *LPINT
LPINT pA;
181:デフォルトの名無しさん
08/11/21 16:31:05
>>179
後者が一般的
182:デフォルトの名無しさん
08/11/21 16:32:25
int * p;
ではダメですか?
183:デフォルトの名無しさん
08/11/22 16:31:46
名前:
E-mail:
内容:
超初歩の質問ですいません。環境はXP,VC++2008(SP1)でインストール直後のまっさらな状態です。
String *name = textName->Text;
が
error C3699: '*' : この間接指定を型 'System::String' で使用できません
と、VisualStudio2008からダメ出しされまして、エラーメッセージどおりに、
String ^name・・・・
としたらうまく通りました。
エラーの原因はStringクラスが定数文字列前提だからかな?とも
思ってますが、それよりも^演算子(なんでしょうか?)の
意味がさっぱり調べられません。
ググってもこれといったものが出ませんでした^^;
^の意味をどなたか教えていただけませんでしょうか・・・。
184:デフォルトの名無しさん
08/11/22 16:51:51
>>183
URLリンク(msdn.microsoft.com)(VS.80).aspx
185:デフォルトの名無しさん
08/11/22 17:08:32
183です。
助かりましたー。新仕様だったんですね。
186:デフォルトの名無しさん
08/11/22 19:29:02
ちょw
187:デフォルトの名無しさん
08/11/22 20:37:46
名前:
E-mail:
内容:
なんぞこれ
188:デフォルトの名無しさん
08/11/22 21:32:16
デスマの合図に決まってるだろ
189:デフォルトの名無しさん
08/11/23 00:33:46
質問です。VisualC++2008をつかっています。
ソースを書き換える前に保存をしたいのですが、
全部丸ごと別名で保存する方法を教えてもらえませんか?
.cppや.hを個別に保存はできましたが、プロジェクトの中身を丸ごと別名で保存はできないのでしょうか?
190:デフォルトの名無しさん
08/11/23 01:26:10
逆に考えるんだ
元のプロジェクトの中身をコピーして別名にしたあと上書き保存すれば結果は同じだと
191:189
08/11/23 02:01:38
>>190
なるほど、ありがとうございました
192:デフォルトの名無しさん
08/11/23 03:58:12
Visual Source Safeを使えばいいと思うよ
193:デフォルトの名無しさん
08/11/23 11:48:07
次のVC++で改良される自動生成コメント ...
// TODO: ここに 派遣さんが コマンド ハンドラ コードを追加します
194:デフォルトの名無しさん
08/11/23 17:04:29
SDKのダイアログリソースを見ると全部英語表記で記述してありますが
VCでビルドするともちろん日本語で表示されますが
日本語用のストリングテーブルがどっかにあるんですか?
195:デフォルトの名無しさん
08/11/23 22:14:00
調べた事ないが、リソースDLLがどっかにあるんじゃまいか?
196:デフォルトの名無しさん
08/11/23 22:25:55
予約語にinterface ってのがあるんだがこれ何?
Javaのinterfaceと同じ感じなのか?
言語仕様にはこんなのなかったとおもうんだが
197:デフォルトの名無しさん
08/11/23 22:28:58
C++/CLIのinterfaceではないだろうか
198:デフォルトの名無しさん
08/11/23 22:39:06
>>197
調べてみたらそのようですね
ありがと
199:デフォルトの名無しさん
08/11/24 16:16:26
すみません、ゲームをリリース版でコンパイルして実行ファイルを作ってみたんですが
MSVCR80.DLLというランタイムに依存してしまうようなんですが
このDLLは再配布可能でしょうか?
200:デフォルトの名無しさん
08/11/24 19:20:22
っ「URLリンク(www.microsoft.com)」
201:デフォルトの名無しさん
08/11/26 07:43:24
プログラミング超初心者で>>23と全く同じ状況になってしまいました
デザイン画面は 「このファイルのデザイナに、デザインできるクラスがないため、デザイナを表示できませんでした。」というエラーが出てしまいます
↓ちなみにこのコードを追加したらなってしまいました
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
//オプションボタン (ラジオボタン) の状態を確認
if (this->radioButtonKisu->Checked == true){
System::Diagnostics::Debug::WriteLine("奇数が選択されました");
}else if(this->radioButtonGusu->Checked == true){
System::Diagnostics::Debug::WriteLine("偶数が選択されました");
}else{
MessageBox::Show("奇数か偶数かを選んでください","お願い");
return;
}
}
前に成功したビルドの状態に戻せないんでしょうか
最初からやり直せば次に進めるんでしょうか
202:201
08/11/26 11:04:56
あぁ、自己解決しました…
203:デフォルトの名無しさん
08/11/26 20:30:45
ゲームを配布しようと思ってるんですが
コード生成のMTとMTdって何が違うんですか?
Dllが付くものは駄目だということは知っているんですが…
204:デフォルトの名無しさん
08/11/26 22:16:31
ライブラリが最適化されてるか否か
205:デフォルトの名無しさん
08/11/26 23:16:52
もう少しわかりやすく説明して欲しいんですが…
206:デフォルトの名無しさん
08/11/26 23:26:24
デバッグ用じゃないかデバッグ用か
207:デフォルトの名無しさん
08/11/27 00:00:34
ggrks
208:デフォルトの名無しさん
08/11/27 00:45:38
じゃあ要するに配布の再はMTを使った方がいいってことですかね?
209:デフォルトの名無しさん
08/11/27 00:52:04
そういうことにしておけばいいんじゃないですかね
210:デフォルトの名無しさん
08/11/27 00:59:05
くたばれクソども
211:デフォルトの名無しさん
08/11/27 09:56:20
MTdはデバッグ用でこれでビルドしたやつ配布すると馬鹿にされる。
212:デフォルトの名無しさん
08/11/27 11:39:13
>>208
Releaseモードでビルドするんだよ
213:デフォルトの名無しさん
08/11/27 16:52:45
myfunc.h という名前のヘッダファイルに
int max(int x,int y);
という関数プロトタイプを宣言し
main()があるソースファイルとは別のmyfunc.cppという名前のソースファイルに
int max(int x,int y)
の定義文を記述しました。
そしてmain()があるソースファイルのはじめに
#include "myfunc.h"
と記述して動いたのですが、はじめの#include文を消去しても、ヘッダファイルに適当な関数プロトタイプの宣言を追加しても
動きました。(定義はしていません)はじめに#includeを記述する必要はあるのでしょうか。
そもそもヘッダファイルの必要性がよくわかっていないので、教えていただけないでしょうか。
214:デフォルトの名無しさん
08/11/27 17:21:44
よくわからんが、とりあえず何か消したら念のためビルドのクリーンとかで
クリアしてから試してみては。
215:デフォルトの名無しさん
08/11/27 18:07:33
普通はヘッダの方は必要に応じて外部参照関数呼び出しを記述
extern int max(int x,int y);
で、cまたはcppソースの方にプロトタイプ宣言を入れる
cpp内で関数を参照する時、呼び出し側の関数よりも上に本体のコードがあれば
プロトタイプ宣言は必要ない。
本体が下にある場合はプロトタイプ宣言が必要。
216:デフォルトの名無しさん
08/11/28 00:11:19
>>214,215
ありがとうございました。いろいろ試してみます。
217:デフォルトの名無しさん
08/11/28 12:14:13
すいません、はじめてフォームアプリケーションを作ってみようと思ったんですが、
テキストボックスに入力した値がどこに入るのかわかりません。
Messagebox::Showでそれっぽいものを表示してみようとも思ったんですが、
System:::string この型は演算子として使用できません(String[0]とかも)となります。
private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {}の中で自分で何かをやるんでようか?
助けてorz
218:217
08/11/28 12:16:01
MessageBox::Showを書いたのはbuton1_Clickの中です。
219:デフォルトの名無しさん
08/11/28 12:21:32
なんつーか、それ以前にやることやったほうがいい気がするが。
もしくは本でも読むか。
試しに、buton1_Clickの中に MessageBox::Show(textBox1->Text); とか書いてみ
220:デフォルトの名無しさん
08/11/28 12:28:35
>>219
ありがとうございました
おかげでスーパーハカーになることができました!
221:デフォルトの名無しさん
08/11/28 13:34:02
>>216
とりあえずmax()の本体を別のcppファイルに移してためしてみるといい
ヘッダーの使い方がわかるはずだ
222:デフォルトの名無しさん
08/11/28 21:13:21
>>221
ありがとうございます。max(int x,int y)が定義されているcppファイルを削除しても動いてしまったので
ためしに maxi(int x,int y)に名前を変えたところ、無事(? 動かなくなりました。
using namespace std; を main() があるcppファイルのはじめに記述していたのですが
stdの名前空間の中にmaxがあったのが原因だったみたいです。
その後、ヘッダーファイルをincludeしなかったりしてみたりと色々試してなんとなくですがヘッダの意味がわかった気がします。
223:デフォルトの名無しさん
08/11/28 21:56:04
日本語でおk
224:デフォルトの名無しさん
08/11/29 15:59:58
VC++2008無料版を使っています。
class の宣言文でpublic:を記述するとclassの位置までインデントが戻ってしまうのですが、
classの位置より1段階インデントした状態にオートインデントするにはどうすればいいのですか?
225:デフォルトの名無しさん
08/11/30 10:19:41
USBにエディタを入れて持ち歩きたいんですけど
Visual C++ライクなエディタってありませんか?
Notepad++Portableは知ってるんですけど、折り畳みがダサいので・・・
226:デフォルトの名無しさん
08/12/03 01:24:56
実行すると、Debugフォルダがかってに作成されちゃうんですが、仕様ですか?
227:デフォルトの名無しさん
08/12/03 05:33:26
>>226
仕様です。
どうしても作りたくなければReleaseビルド以外使うな
228:デフォルトの名無しさん
08/12/03 08:33:13
>>226
プロパティいじれば好きに出来るよ
$(OutDir)
とか
$(IntDir)
を好きな名前にしたらいい
229:デフォルトの名無しさん
08/12/03 18:13:00
ゲーム製作をしていてVC++2008 でコンパイルしています。
コード生成設定をMTdでやると通るのですが、MTでやると以下のエラーが出てしまいます。
LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __malloc_dbg が関数 "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。
libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __free_dbg が関数 "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。
C:\Documents and Settings\***\デスクトップ\**\Debug\***.exe : fatal error LNK1120: 外部参照 2 が未解決です。
LIBCMTを無視しても逆にエラーが増えてしまうんですが、どうすればいいでしょうか?
ゲーム配布時にはMTdでもMTでもdllが付かなければ問題ないですか?
230:デフォルトの名無しさん
08/12/03 18:41:50
>>229
libcpmtdはデバッグ用。内部でデバッグ用のmallocとfreeを呼んでるから/MTdじゃないとリンクできない。
リリースビルドならlibcpmtを使う。
ってか、プロジェクトの作成をウィザード任せにすればその辺を自分でいじることなんてないと思うんだけど。
231:デフォルトの名無しさん
08/12/03 18:50:34
なるほど、debugモードでコード生成する時はMTdで
リリースモードでやるときはMTでやるものなんですね
試しにリリースモードでMT生成してみたら通りました。
どうもありがとうございましたー。
232:デフォルトの名無しさん
08/12/03 20:24:26
すいません
windowsXP SP2で visual c++ 2005 Express Editionを使っているんですが
以前のエラーのため、Windows Forms Designer Package ({7494682B-37A0-11D2-A273-00C04F8EF4FF})
以前のエラーのため、Visual Studio Explorers and Designers Package ({8D8529D3-625D-4496-8354-3DAD630ECC1B})
以前のエラーのため、Visual Studio Explorers and Designers Package ({8D8529D3-625D-4496-8354-3DAD630ECC1B})
以前のエラーのため、Visual Studio Common IDE Package ({6E87CFAD-6C05-4ADF-9CD7-3B7943875B7C})
というようなエラーが出てしまいます
コマンド プロンプトで 'VCExpress /resetskippkgs' を入力しろと出るので試しましたが無理でした
調べたところbeta版がどうこうとあるのですが、自分はそのようなものは入れていません
beta版のアンインストーラーを使用しても、該当するものはありませんでした
何か解決策はないでしょうか?
233:デフォルトの名無しさん
08/12/04 10:44:16
そのエラーは何をする時に出るの?
234:デフォルトの名無しさん
08/12/06 01:18:55
お願いします。
WinXP SP2でVisual c++ 2005 Express Editionです。
UNICODEのIniファイルの情報をGetPrivateProfileStringで取得しようと
しているのですが、lpReturnedStringにはlpDefaultの値が入ってしまいます。
IniファイルがANSIのときはうまくいきます。
GetPrivateProfileStringの引数はワイド文字にしているつもりです。
意図的にGetPrivateProfileStringWにしてもダメでした。
UNICODEファイルの際の注意点などあるのでしょうか?
ご教授ねがいます。
235:デフォルトの名無しさん
08/12/06 01:29:29
>>234
INI系の関数はAでもWでもファイルの中身はマルチバイト文字として扱われる。
そのおかげで、Aで書き込んでWで読み取るなんてことができるんだけどね。
もちろん、文字コードの自動判別なんてやっていない。
236:デフォルトの名無しさん
08/12/06 10:27:18
>>234
> UNICODEのIniファイル
拡張子がINIってだけで中身がUnicodeじゃあ、INIファイルとは呼べ
ないシロモノだな。
自分で、CStdioFileクラスのCStdioFile::ReadString()/WriteString()
なりを使って、1行ずつ読み込んで文字列処理するコードを書くしか
ないな。(w
237:デフォルトの名無しさん
08/12/06 12:35:20
そうだったのか。
たしかにINIファイルって、ASCIIしか使わないけど……
238:デフォルトの名無しさん
08/12/06 13:08:53
> INIファイルって、ASCIIしか使わないけど……
んなこたぁない。シフトJISであれば漢字やカナ文字だって使える。
でなきゃ、漢字やカナ文字を含むパス名やファイル名の文字列保存に
使えない。
239:デフォルトの名無しさん
08/12/06 13:49:53
マジ?シフトJISなら良かったのか。
それは気がつかなかった。今度試してみよう。
ていうか、レジストリ弄りたくなくて、いまだにINIファイル使ってるんだよね。
240:デフォルトの名無しさん
08/12/06 14:34:14
Windowsフォルダに際限なくINIファイル作られるより、レジストリの方が
ずっとマシだと思えるんだが? ログインユーザー単位で設定が分けら
れるというメリットもあるし。
第一、レジストリなんて意識せずともWindowsのシステムでいじられ
まくりだぞ。
241:デフォルトの名無しさん
08/12/06 14:37:53
>>239
Shift_JISというか、そこで使っているコードページの文字コード。
欧米ならWindows-1252だし、繁体中国語圏ならBig5という具合。
>>240
ファイルでもApplication Dataあたりに置けば、ユーザ別設定はできる。
242:デフォルトの名無しさん
08/12/06 15:03:55
>>241
> ファイルでもApplication Dataあたりに置けば、ユーザ別設定はできる。
MFCフレームワークのデフォルト処理を前提に書いてしまった。言われ
れば、まぁ確かにそうだ。 ところで、複数インスタンス起動した
アプリからiniファイルへの同時アクセスとかって、今は問題ないん
だっけか?
243:デフォルトの名無しさん
08/12/06 16:50:51
たんなるアプリの設定データはWindowsフォルダなんかにつくらんだろ。
自フォルダにINIファイル作るなんて普通じゃないか?フリーソフトなんかは特に。
わざわざ選択肢減らす必要なんてないしケースバイケースでよかろう。
244:デフォルトの名無しさん
08/12/06 17:30:28
>自フォルダにINIファイル
Program Filesに置いたらVistaで問題が出る。
All UsersのAppDataとかでどうか。
245:デフォルトの名無しさん
08/12/06 17:41:50
>>244
>Program Filesに置いたらVistaで問題が出る。
はじめやりずれーって思ったら他のユーザーでログインしたときを考えたら納得した
246:デフォルトの名無しさん
08/12/06 19:27:48
>>243
> たんなるアプリの設定データはWindowsフォルダなんかにつくらんだろ。
昔は作りまくりだったんで、レジストリが搭乗したんだが?
今もMFCでCWinApp::SetRegistryKey()呼ばないとiniファイルを使うけど、
iniファイルが作られるデフォルトの場所はWindowsフォルダだよ。
>>244
> All UsersのAppDataとかでどうか。
自分(現在のログインユーザー)用の「マイドキュメント」フォルダの
パスはSHGetSpecialFolderLocation()で取得できるけど、これって取れる
んだっけ? もしかして決め打ち? それはそれで問題な気もするが?
なんて思ったら、
SHGetSpecialFolderLocation(hwndOwner,CSIDL_COMMON_APPDATA,...);
でいけるのか。 知らない間にCSIDLずいぶん増えているな。
URLリンク(msdn.microsoft.com)(VS.85).aspx
247:デフォルトの名無しさん
08/12/06 19:30:24
昔話がしたいだけか。
248:デフォルトの名無しさん
08/12/06 19:46:34
VistaでProgram Filesのデータを読み書きするのって各ユーザー毎に仮想フォルダ作って
勝手にやってくれんじゃなかったっけ?
具体的にはどういう風になんの?
正直Vistaなんて糞OS使った事もないから知らんが。
249:デフォルトの名無しさん
08/12/06 20:20:51
全ユーザー共通のINIファイルじゃないとダメってソフトでも
なければさほど問題はなさそうな気もする
つかこれってINIファイルに限らず他のセーブデータにも
言える事だろ
250:デフォルトの名無しさん
08/12/06 23:21:36
「Program Filesに置いたらVistaで問題が出る。」っていうのは、他の
スレでも見たような気がするが、実際何がどう問題なのかわからん。
すくなくとも、exe本体が存在するProgram Files下のアプリケーション
フォルダ内にiniファイルを作成して読み書きは問題なく動作している
けどな。
Administrator権限以外じゃダメとかなら、Vistaに限らず2000やXP等でも
問題になりそうな気がするし、セキュリティ上、別のログインユーザーに
iniファイル内容を見られると困るというなら、All Usersに置いても同じ
だと思う。
251:デフォルトの名無しさん
08/12/06 23:40:23
別のログインユーザに見られたら困る、じゃなくて
別のログインユーザから見られないから困るんでしょ。
Program FilesやHKLMに無駄に書き込むソフトなんざそもそもマルチユーザを前提としていないので
これらの挙動はソフトとしては想定外なわけで。
あと、管理者権限を持つプロセスから呼ばれると仮想ストアじゃないとこから設定ファイル読みに行ってNotFoundとか。
なんにせよUAC程度で不具合出るようなソフトは単純に行儀悪いだけだと思う。
252:デフォルトの名無しさん
08/12/07 00:27:46
>>251
そうそ
Program Filesにおいちゃうとアドミニ権限ないと
書き込めないし見れないんだよね
なんでアドミニ権限ないユーザが起動すると落ちるソフトとか結構あったりする
253:デフォルトの名無しさん
08/12/07 00:35:26
行儀が悪いのはむしろこういう勝手な事をOSにさせるMSだと思うが
別にユーザー毎の設定で問題ないアプリなら不具合にならないわけだし
結局の所はケースバイケースって事でしょ
ゲームアプリのセーブデータなんかはプログラムフォルダ内に入れとかないと
セーブデータ残したままアンインストールする場合、普段ユーザーが見ない所に
ファイルが残るしな
「行儀がいい」と「頭が固い」を履き違えてるんじゃね
254:デフォルトの名無しさん
08/12/07 00:43:20
>>253
いや、権限によってはProgram Filesを見れないから
アプリの起動自体できない
設定ファイルがないって感じで落ちる
ケースバイケースじゃなくてこう作らないと駄目ってところまできてる
255:デフォルトの名無しさん
08/12/07 00:48:55
さすがにそれは設定ファイルが存在することを前提にプログラムを組む方がおかしい
なかったらデフォルト値で動かすのが普通。
256:デフォルトの名無しさん
08/12/07 00:51:59
>>254
設定ファイルがないと動かないなんて作りになってるのは
ProgramFilesだろうがなんだろうが終わってるだろ
257:デフォルトの名無しさん
08/12/07 00:59:36
>>256
仮にProgramFilesが駄目だったら今度どこに保存すんの?
258:デフォルトの名無しさん
08/12/07 01:06:21
Vistaは持ってないけどこの認識であってる?
1.ファイルを読むだけだったらProgram Filesから行われる
2.書き込みが発生した場合、バーチャルストアで行われる
3.一度書き込みが発生したファイルは、バーチャルストアで読み書きが行われる
Program Filesから読めないとか、どこに保存するとか言ってる人がいるから混乱してきたが。
この認識が違うなら>>254に詳しい説明をしてほしい
259:デフォルトの名無しさん
08/12/07 01:11:29
>>258
そんなのセキュリティのポリシーの設定で変わるじゃん
駄目にしてある会社だったら読み取りも駄目だろ
260:デフォルトの名無しさん
08/12/07 01:15:46
その場合ってそのユーザにアプリって起動できんの?
インストールの設定も含めて
261:デフォルトの名無しさん
08/12/07 01:29:36
仮にそういうセキュリティ設定になってたとしたら
INIファイルどころかあらゆるセーブデータの読み書きができなくなるわけだから
INIファイルをどうしようが結局同じことだと思うけど
まあどうしても全てのユーザーで動作させたいんだったら全セーブデータを
>>244のようにするか、レジストリに全てぶっこむしかないだろうね
アホ臭いとしか言いようがないが
262:デフォルトの名無しさん
08/12/07 01:45:39
でもきちんと対応するってならそれっきゃないってことだろうな
まあ、業務でそういうところに当たらないとも限らないからちょっとメモっておこ
担当者がキチだと普通にこういうの要求されるよね
263:デフォルトの名無しさん
08/12/07 03:54:39
>>254
ファイルが読めないなら起動に必要なデータファイルはどこから読むんです?
264:234
08/12/07 04:26:59
豚切り失礼します。
>>236さん
遅くなりましたが、回答ありがとうございます。
そうですか。UNICODEはINIファイルとして使えないのですね。
勉強になりました。
265:デフォルトの名無しさん
08/12/07 12:46:44
>>258
3.が違う
266:デフォルトの名無しさん
08/12/07 16:07:48
>>265
どう違うの?
267:デフォルトの名無しさん
08/12/07 20:53:50
言ってみたかっただけじゃね。
268:デフォルトの名無しさん
08/12/08 01:31:32
CとC++の違いってヘッダがiostreamになって使う関数が違う以外にないの?
こんなんでオブジェクト施行とか騒いじゃってるの?拍子抜けなんだけど
269:デフォルトの名無しさん
08/12/08 01:38:10
クラス、テンプレート、多重定義、例外処理……、
オブジェクト指向に関係あるものないもの、CになくてC++にある機能なんていくらでもあるが。
270:デフォルトの名無しさん
08/12/08 01:49:56
クラスなんて構造体に毛がはえたようなものしょぼいんだよはっきりいって
271:デフォルトの名無しさん
08/12/08 02:18:40
馬鹿野郎!
それのおかげでインテリセンスの恩恵があるんだろうが!
272:デフォルトの名無しさん
08/12/09 00:47:26
C→C++の一番の利点は
コードが見やすいこと、これに尽きるだろ
C++に慣れるとCのでっかいコードは耐えられん
クラス化したくてウズウズしてくる
変数途中で宣言したくなる
273:デフォルトの名無しさん
08/12/09 00:51:53
C言語の勉強やってからC++に移行したほうが良いだろうか
それとも最初からC++から勉強しても問題ない?
274:デフォルトの名無しさん
08/12/09 00:57:11
>>258
バーチャルストアに書き込むのはマニフェストがない場合だけだよ。
マニフェストがあればあとは管理者権限への移行が成功すれば直接書くことになる。
275:デフォルトの名無しさん
08/12/09 01:19:02
>>273
いきなりC++でいいと思う。
共通する事柄はいずれにせよ学ぶことになるし、
Cで良く使うテクだけどC++ではあまり使わないのとか意外とあるし。
276:デフォルトの名無しさん
08/12/09 01:24:14
>>275
把握したありがっとう
277:デフォルトの名無しさん
08/12/09 03:21:41
>>274
つかそれって結局管理者権限で実行するってことじゃねーの?
他のシステムファイルからみとかで管理者権限が必要でマニフェストに組み込まれた
アプリじゃなければ>>258のようになるってことっしょ?
278:デフォルトの名無しさん
08/12/09 10:30:08
>>277
マニフェストがない場合、管理者権限でもバーチャルストア行き。
279:デフォルトの名無しさん
08/12/09 10:52:59
マニフェストがないという言い方は正しくない
280:デフォルトの名無しさん
08/12/09 12:44:06
一連の流れをみててもどうもわかりにくいです。
人によって言ってる事が違うというか。
管理者、制限ユーザー、マニフェスト関連で正確な挙動に
ついての詳細情報が掲載されてるサイトないですか?
VistaだけでなくXPや2000での情報も欲しいです。
281:デフォルトの名無しさん
08/12/09 14:48:03
>>280
一次情報源としてMSDNライブラリなど
例えばここらへん。
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
URLリンク(technet.microsoft.com)
282:デフォルトの名無しさん
08/12/09 15:11:06
日本語でおk
283:デフォルトの名無しさん
08/12/09 15:16:27
初心者スレで英文持ち出してくるヤツは死んでいいと思うよ
日本と米で仕様が違うのもよくある事だしな
284:デフォルトの名無しさん
08/12/09 15:26:18
英文にしか情報がないようなことを初心者スレで質問するヤツは死んでいいと思うよ
285:デフォルトの名無しさん
08/12/09 21:38:14
>>284
初心者なんだから分からんだろ。
286:デフォルトの名無しさん
08/12/09 21:50:21
非標準言語のしか資料が無いと言うことが判っただけでも大きな進歩であり、
革新的な質問であったことは確定的に明らか。
287:デフォルトの名無しさん
08/12/09 22:55:05
誰か日本語でわかりやすくまとめてくだちぃ
288:デフォルトの名無しさん
08/12/09 23:24:08
ホームエディションだと管理者か制限ユーザーのカテゴリわけだけで
細かい設定はないんだよな
プロフェッショナルの管理者による厳しいセキュリティ設定まで考慮してもきりがないと思う
どうやっても管理者次第で動かない設定にできるんだし
XPホームエディションでProgramFilesに入れたアプリを制限ユーザーで動かしてみたけど
普通にINIファイルを含むセーブデータを読み書きできた
Vistaでマニュフェストの指定なしだとこの読み書きがバーチャルストアになるってことか
それを想定して動くつくりであればセーブデータもプログラムと同じフォルダでいいんじゃね
289:デフォルトの名無しさん
08/12/10 01:08:56
まぁ仮想ストアは救済策ってーか、MSお得意の泥臭い互換性の維持だからな。
多分将来的にはユーザーのデフォの権限を制限ユーザーにしたいんだろうが、
それVistaでやっちゃうとProgram Filesに書き込むアプリなだけで動かなくなるわけだし。
マニフェスト無しでほっとくのも止めやしないが、管理者権限のコマンドプロンプトやファイラから
起動したら別々の設定ファイルをうっかり作っちまうとかも起こりうるので、
requireAdministratorで起動毎にUACダイアログを出した方がいい。
そしてアプリのユーザーにダイアログをうざがられてAppDataに
書き込まざるを得なくなるというプレッシャーこそがUACの真意だとかなんとか。
290:デフォルトの名無しさん
08/12/10 02:03:25
かなりどうでもいい条件付けだな
291:デフォルトの名無しさん
08/12/10 11:56:44
VS 2003からVS 2008にしてみました
C++のソースファイルはUTF-8で書かれていて、VS 2003では概ね問題なくコンパイルできていました。
ところがVS 2008のcl.exeは、このソース内に定数として書かれた文字列を勝手にSJISに変換して内部処理するようです。これでは正常動作できません。
この余計な機能を、何とか避ける方法はないのでしょうか?
膨大な量があるので、今さらファイルをSJISに戻すとかすることは不可能なんです。
292:デフォルトの名無しさん
08/12/10 12:03:53
コードページは?
293:デフォルトの名無しさん
08/12/10 12:10:24
普通にコマンドプロンプトを開いて作業しているので、932のシフトJISです。
294:デフォルトの名無しさん
08/12/10 12:15:05
すいません、本当に簡単なことなのですが
if(argc == 3){
if(argv[1] == L"-o"){
if((fp = fopen("argv[2]", "w")) == NULL){
printf("出力ファイルをオープンできません.\n");
exit(1);
}
fclose(fp);
}
この
if(argv[1] == L"-o") の条件が通りません。
コマンドで test -o test1 のように打っても違うものとして認識しているようで・・・
画面にプリントしてみると同じなのですが、Lをつけるとデータが違うものになってしまうのでしょうか?
295:デフォルトの名無しさん
08/12/10 12:16:52
chcpで変えてみては?
つーか、UTF-8でダメな例が思いつかないな、再現可能なソース無いですか?
296:デフォルトの名無しさん
08/12/10 12:18:44
>>294
文字列の比較に直接 == は使えません。
297:デフォルトの名無しさん
08/12/10 12:29:10
>>291
コンパイルエラーなのか動作が変なのか
エラーメッセージがあればそれを書いてもらうと何かわかるかもしれません
>>294
argvの型はTCHARですか
298:デフォルトの名無しさん
08/12/10 12:39:28
またどこの言語からの転向者だろ
VSつながりでVBかC#あたりか
299:デフォルトの名無しさん
08/12/10 12:40:19
template <typename Foo, typename Bar> class Baz : public Bar { なんたら
void Qux( const Quux<Foo,Bar> & foobar ) {...};
};
class Bar { なんたら }; // (1)
VC2008で上のをもう少し複雑に書くと Baz::Qux での引数の型 Quux<Foo,Bar> が
(1) の Bar と解釈されてコンパイルエラーになってしまう
GCCだと通るんだけどなあ
300:デフォルトの名無しさん
08/12/10 12:40:36
>"argv[2]"
この書き方はPerlかPHPだろう
301:デフォルトの名無しさん
08/12/10 12:52:34
もともとCとVBAをやってました
>>296
やっぱりstrcmpを使わないとだめですか?
>>297
int _tmain(int argc, _TCHAR* argv[])
こう宣言してます
302:デフォルトの名無しさん
08/12/10 12:53:27
もともとCとVBAをやってました
>>296
やっぱりstrcmpを使わないとだめですか?
>>297
int _tmain(int argc, _TCHAR* argv[])
こう宣言してます
303:デフォルトの名無しさん
08/12/10 12:57:44
>>302
はい。
304:デフォルトの名無しさん
08/12/10 12:59:15
if( _tcscmp(argv[1],"-o") == 0 ) {
では
305:デフォルトの名無しさん
08/12/10 13:00:32
if( _tcscmp(argv[1],_T("-o")) == 0 ) {
では
306:デフォルトの名無しさん
08/12/10 13:01:43
if (_tcsicmp(argv[1],_T("-o")) == 0) {
では
307:デフォルトの名無しさん
08/12/10 13:03:35
>>304さんの方法でやってみたところ
エラー 1 error C2664: 'wcscmp' : 2 番目の引数を 'const char [3]' から 'const wchar_t *' に変換できません。(新しい機能 ; ヘルプを参照)
というようなことを言われました。
どうもこの変換できないというところが理解できないです。代入しているわけでもないのに何故?って感じです。
308:デフォルトの名無しさん
08/12/10 13:04:55
#include "stdafx.h"
#include "string.h"
#include "stdlib.h"
int _tmain(int argc, _TCHAR* argv[])
{
FILE *fp;
if(argc == 3){
if( _tcscmp(argv[1],"-o") == 0 ){
if((fp = fopen("argv[2]", "w")) == NULL){
printf("出力ファイルをオープンできません.\n");
exit(1);
}
fclose(fp);
}
else{
printf("USage :\n");
printf("-o : **********\n");
}
}
else{
printf("引数の数が違います");
}
return 0;
}
これが全文です。
309:デフォルトの名無しさん
08/12/10 13:14:00
通常 "-o" の文字リテラルは char で構成される
文字セットがユニコードの場合 _tsccmp は _wcscmp にマップされる
_wcscmp が要求する型は const wchar_t * だからエラーになる
_T マクロは文字セットにあわせてユニコードの場合には "-o" を L"-o" と変える
L"-o" はワイド文字 wchar_t で構成されるリテラルだから通る
すまん思いきり間違えた 304は俺
310:デフォルトの名無しさん
08/12/10 13:18:33
UNICODEに拘らなければANSI Cで十分なんだよな
311:デフォルトの名無しさん
08/12/10 13:21:00
>>309
解決しました!ありがとうございます
312:デフォルトの名無しさん
08/12/10 13:47:31
>>291で質問した者です
再現可能なソースを作っていて気がつきました。
chcp 65001やchcp 437としても動作が同じで、文字列リテラルが強制的にSJISに内部変換されていることが分かりました。
UTF-8のソースファイルなのですが、「BOM」を付けると、このような動作になるようです。
BOMを付けないUTF-8だと、warning C4819 が山ほど出て、化ける文字までありますが、何とかなりそうです。
今回作った下の再現プログラムも、BOMありのUTF-8と、BOM無しのUTF-8では、動作が違ってきます。
#include <iostream>
int main()
{
std::cout << "項目" << std::endl;
return 0;
}
一応解決したことにします。ありがとうございました。
313:デフォルトの名無しさん
08/12/10 15:35:09
すみません>>294で質問したものですが、
同じソースで _tcscat(argv[2],L".txt"); という処理を入れ、作成ファイルをテキスト形式にしようと思ったのですが
出力されたファイルが、テキストではなくファイルで出力されてしまいます。
画面表示させるとちゃんと****.txt となっているのですが・・・
314:デフォルトの名無しさん
08/12/10 15:49:13
>>313はスルーしてください
アホくさい間違いでしたので(汗
315:デフォルトの名無しさん
08/12/10 22:29:54
Visual C++を使用していて、ちょっと困ってしまったので助けてください。
下記画像のようにスペース部分に色つき矢印やらドットやらが表示されて消えなくなってしまいました。
どこかでキーボード押し違えたみたいで・・
この設定の解除の仕方を分かる方いたら教えてください><
↓
URLリンク(imepita.jp)
316:デフォルトの名無しさん
08/12/10 22:38:27
メニュー > ヘルプのキーボード何とかに一覧がある
317:552
08/12/10 23:45:14
ヘルプで見ても、そもそもコレが何なのか解らないので検索できないので
教えていただけませんか?
318:552
08/12/11 00:19:36
質問に答えてくれなかったからってこんなこと言うのもなんだけど
なんか、プログラマーって陰湿な性格の人が多いよね。
解るんなら教えてくれればいいじゃん。初心者用のスレだった気がするけど。
ついでに、編集→詳細→スペースの表示で自己解決しました。
だれも教えてくれんかった。
319:デフォルトの名無しさん
08/12/11 00:47:38
今MIDIファイルを開くっていうプログラムを作りたいのですが、
よろしければ教えてください。
バージョンはVC++2005 AEです。
320:319
08/12/11 00:53:28
319ですがGETFILE関数を使いたいです。
よろしくお願いします。
321:デフォルトの名無しさん
08/12/11 02:15:04
>>318
君が質問したのは3、4時間前だろ?
誰もが同じスレをずっと監視してサポートセンターのように対応してくれるとでも思ってんのか?
自分で解決したならそれでいいし、自分で色々やってもできなかったらまた質問すりゃいいだろ
陰湿なのはちょっとレスがない程度でふてくされる君の思考回路だよ
322:デフォルトの名無しさん
08/12/11 02:29:37
>>318
オマエみたいなパーデンネンを弾くために、みな時間置いてから答えるようにしてるからね。
ゴクローサン。
323:デフォルトの名無しさん
08/12/11 07:33:14
>>315
[編集]→[詳細]→[スペースの表示]
324:デフォルトの名無しさん
08/12/11 09:53:49
>>318
つーかその質問、定期的に出るんでうんざりなんだけど。
過去レス調べることもできないのかよ。
あと質問なんか1日くらい待てや、答える人が24時間張り付いてるわけじゃないぞ。
325:デフォルトの名無しさん
08/12/11 10:10:52
こんにちわ。Visual C++でOPENGLを用いてゲームを作ろうと思うのですが、
ウィンドウを振動させるやり方がわかりません。。
何かコマンドややり方があるのならアドバイスください。よろしくお願いします。
※JAVASCRIPTでウィンドウを振動させるみたいな感じです。
326:デフォルトの名無しさん
08/12/11 10:18:59
>>325
SetWindowPos APIとrand関数を使え
327:デフォルトの名無しさん
08/12/11 10:28:02
もの凄く気軽に「こんなソフトありませんか?」
スレリンク(software板:331番)
331 名前:名無しさん@お腹いっぱい。[] 投稿日:2008/12/11(木) 09:50:07 ID:mvBU1EDM0
こんにちわ。
アクティブウィンドウを振動させるようなフリーソフトってありますか?
OPENGLで実験中にウィンドウを揺らしたいのですが・・・コマンドも分からないし、出来ないので外部のツールで強引にしようかと。。
よろしくお願いします。
328:デフォルトの名無しさん
08/12/11 10:45:36
>>315
Ctrl+R、 Ctrl+Wを続けて入力
329:デフォルトの名無しさん
08/12/11 10:58:16
>318
試験勉強みたいに頭の中に全部記憶する必要ない。
というか情報量多すぎるからその都度自分で調べて解決していかないとだめ。
初心者の場合はどうやって調べたらいいかわからないから
調べ方を教えてあげるのが重要。
答えだけ教えたんじゃ、いつまでたっても自分で調べられようにならない。
330:M
08/12/11 11:35:21
今、VC++でMFCを用いたプログラムを作成中で、そのプログラムでRS232C通信を行いたいのですが、RS232c通信のプログラムの部分だけAPIを用いて記述したいのですがどのようにすればいいのでしょうか?
方法があれば教えてください。お願いします。
331:デフォルトの名無しさん
08/12/11 11:42:17
>>330
ここなんかどうだろ?
URLリンク(www.ee.fukui-nct.ac.jp)
332:デフォルトの名無しさん
08/12/11 11:43:59
>>326
2つともよく分からないまま検索したらMOVEWinfowというのもあるみたいで、if関数を用いて頻繁に座標をずらし振動させることにしました。
こんなんでいいのかな??
マルチすいません。ありがとうございます。
333:M
08/12/11 11:48:46
>>331
ありがとうございます。
このプログラムをMFCのプログラムにどのように組み込めばいいのでしょうか?
あほな質問ですみません。。
334:デフォルトの名無しさん
08/12/11 12:55:47
>>333
WM_COMMANDメッセージでコマンドを受け取ったら、main関数の中身を実行すれば?
335:デフォルトの名無しさん
08/12/11 14:11:02
ファイルの読み書きとほとんど同じだな
やってる内容が理解できれば使えるだろ
336:M
08/12/11 14:27:45
>>334
それでやってみようと思います。ありがとうございました。
337:デフォルトの名無しさん
08/12/11 16:38:53
VC++2008使ってます
LogItemという独自クラスを作り、
LogItem item;
ListBox.add(item);
といったことしてます(単なるリストボックスへの追記)。
表示を変更する際に、
ListBox.add(~.format("{1}・・・",item.name,・・・))
等とすると、今度は削除時にいろいろ面倒です。
表示を適切に変更できるものの、削除時は、
ListBox.remove(item)でいけるような
(追記時の表示に依存しないような)
簡単な方法はご存じありませんか?
参考になりそうなサイトやキーワードを
教えていただければ幸いです。
338:デフォルトの名無しさん
08/12/11 16:41:26
16ピンのPIC16F819のPICを利用してサーボモータや光電センサー、ディスプレイを制御したいのですがBASICのプログラムが分かりません
サーボモータは Futaba S3002 を使用
・計7個のサーボモータ使用
・ボタンを押して入力したものをサーボモータに出力〔右に90度⇒左に90度〕
光電センサーは鏡とセンサーの間を通過するのを検出するもので omron E3R-R2E4 を使用
・コインを検出してカウントする
・6個使用
ディスプレイは数字と文字の両方を表示したいです
まとめると、コインを光電センサで検出してその検出したコインをディスプレイに表示する。たまボタンを押すとサーボモータが回転
するものを作りたいです。
この動作をBASICのブログラムで制御させるには、どのようなプログラムにすればいいですか
339:デフォルトの名無しさん
08/12/11 16:43:58
>>338
ここはBASICのスレでもPICのスレでもない。
340:デフォルトの名無しさん
08/12/11 19:13:55
337です。
自己解決しました。単なる調査不足&ありがちな混乱、でした
※ToStringをオーバーライドすればいいんですね・・・。
ってか。
質問の大半も意味不明でした。正確には「リストボックスにオブジェクトを
そのまま追加した時に、表示のみを変更できるようにしたい。」とすれば
よかったんでしょうね・・。
お騒がせいたしました。ほかに困っている人の助けになれば幸いです^^;
341:デフォルトの名無しさん
08/12/11 21:14:25
Visual C++ 2008 Express Editionについての質問です。
Windowsフォームアプリケーションプロジェクトを作成し、
フォームにボタンとpictureBoxを配置しました。
ボタンを押すと、pictureBoxのプロパティで設定した画像の画素値を取得したり
描きこんだりしたいと思い、画像にアクセスする手段を模索することにしました。
どうもpictureBoxクラスから直接画像にアクセスすることはできず、
いったんBitmapクラスに移さないといけないことが分かりました。
これでSetPixel関数を使って、画素値を書き換えることができるようになったのですが、
これをまたpictureBoxに戻して表示することができません。
コードは以下の通りです。(ボタンを押したときの処理関数)
Bitmap bmp = pictureBox1->Image;
bmp.SetPixel( 10, 10, Color::Red );
pictureBox1->Image = bmp; ← これで型が合わないというようなエラーが出る
どのようにすればpictureBoxの画像を加工し、それを表示することができるのでしょうか?
342:デフォルトの名無しさん
08/12/12 16:23:46
pictureBox1->Image = Image::FromHbitmap(bmp.GetHbitmap());とかでどう?
343:デフォルトの名無しさん
08/12/12 17:44:23
すいません。C++でint型の変数ををchar型の配列にキャストして入れる方法ってどうやるのですか?
int iAnswer = 0;
int i = 0;
char ChAnswer[256];
ChAnswer = (char)i;
とやっているのですが、変換できないといわれます。
344:デフォルトの名無しさん
08/12/12 17:46:28
ChAnswer[0] = (char)i; じゃないの?
345:デフォルトの名無しさん
08/12/12 17:51:27
>>344
それだと、例えば123を変換した場合、1だけ変換ということになりそうな気がするのですが・・・違いますか?
346:デフォルトの名無しさん
08/12/12 18:00:16
>>345
何でそう思うのか、、もっと基礎からやり直すか
具体的にやりたいこと書いて手取り足取り教わるしかないと思うよ。
347:デフォルトの名無しさん
08/12/12 18:02:26
>>346
すいません。よく考えてたら頭の中にあったものが2次元配列でした・・・それにしても変な考えですけど。
逝ってきます。
348:デフォルトの名無しさん
08/12/13 00:30:18
エスパー回答で言わせてもらえばsprintf()使えばいいと思うよ
349:341
08/12/13 07:31:03
>>342
それでできました!
ありがとうございました!!
しかし、.NET環境でもWin32apiレベルのビットマップハンドルを意識した記述をしないと
いけないのはどうなのかと思いました・・・
C++ Builderはもっとシンプルになりますし・・・
350:デフォルトの名無しさん
08/12/13 09:01:26
>>341
たぶんこうすればいける。
Bitmap^ bmp = gcnew Bitmap(pictureBox1->Image);
bmp->SetPixel(10, 10, Color::Red);
pictureBox1->Image = bmp;
Imageプロパティの型はImageへのハンドル。
にもかかわらず、341ではコード上Bitmapそのものを渡すようになっている。
本来、BitmapはImageの派生なので、Bitmapのハンドルなら渡せるというわけ。