★初心者にVisual C++を教えるスレ★ Part32
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/10/31(金) 12:16:11お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
過去スレ、関連スレなどは>>2-5辺り。
0002デフォルトの名無しさん
2008/10/31(金) 12:17:44Part30 ttp://pc11.2ch.net/test/read.cgi/tech/1210170833/
Part29 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/10/31(金) 12:18: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/10/31(金) 12:21:50■MFC相談室 mfc19d.dll■
http://pc11.2ch.net/test/read.cgi/tech/1207301867/
Win32API質問箱 Build71
http://pc11.2ch.net/test/read.cgi/tech/1224745158/
【C++】 DirectX初心者質問スレ Part19 【C】
http://pc11.2ch.net/test/read.cgi/tech/1224942911/
C言語なら俺に聞け(入門篇) Part 37
http://pc11.2ch.net/test/read.cgi/tech/1224000127/
【初心者お断り】ガチ規格準拠C専用スレ Part133
http://pc11.2ch.net/test/read.cgi/tech/1201153965/
C++相談室 part63
http://pc11.2ch.net/test/read.cgi/tech/1221144557/
C/C++の宿題を片付けます 117代目
http://pc11.2ch.net/test/read.cgi/tech/1225320579/
【初心者歓迎】C/C++室 Ver.60【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1224057986/
【関連サイト】
猫でもわかるプログラミング
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/10/31(金) 12:24:05part 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/10/31(金) 12:26:49Microsoft 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/10/31(金) 12:54:44CPaneDialog::Createのパラメータ、nIDは何を入れればいいんですか?
0008デフォルトの名無しさん
2008/10/31(金) 13:52:30>>7
自分で決めたID
同じ親をもつ同士でかぶらなければいい。
0009デフォルトの名無しさん
2008/10/31(金) 15:19:50乙です
0010デフォルトの名無しさん
2008/10/31(金) 15:57:19thx
0011デフォルトの名無しさん
2008/10/31(金) 18:52:060012デフォルトの名無しさん
2008/10/31(金) 18:59:01でも通常関数内で宣言したら消しようがないべ?
スコープ抜けるときに消えるし、ちゃんとデストラクタも呼ばれる。
ただし、newで作ったら、delete必要。
0013デフォルトの名無しさん
2008/10/31(金) 19:20:22何度も同じオブジェクトを繰り返し作るのは速度的な問題以外に何かまずいことはありますか?
0014デフォルトの名無しさん
2008/10/31(金) 22:14:57これはTree Controlで頑張るしかないんですか?
0015デフォルトの名無しさん
2008/11/01(土) 01:12:35newして作ったのなら開放が必要。auto変数なら無用。
>>13
シングルスレッドに限定すれば速度以外は問題ない。
マルチスレッドの場合に関しては情報不足。
0016デフォルトの名無しさん
2008/11/01(土) 09:50:19コンソール上で出力するにはどうすればよろしいでしょうか?
0017デフォルトの名無しさん
2008/11/01(土) 10:08:25やっとインストール終わったと思ったら20008があると知って変更したほうがいいか調べてます
エディタの使いやすさは変わったでしょうか?
0018デフォルトの名無しさん
2008/11/01(土) 10:23:05ありがとうございます。メモリが壊れやすくなるからなるべく無駄のないように作るのが普通だとかそういうルールがあるのかとおもいました。
newの意味がやっとわかりました。関数を抜けても消滅させないためにあるんですね。
0019デフォルトの名無しさん
2008/11/01(土) 10:32:32printfでワイド文字列の書式指定するとか、wprintfみたいなワイド版の関数をつかう。
あとロケールを設定しないと正常に表示されない。
0020デフォルトの名無しさん
2008/11/01(土) 10:46:06UTF-8なら出来るけど
002116
2008/11/01(土) 10:54:57どうもありがとうございました。以下の内容でできました。
setlocale(LC_ALL, "");
printf("%S", LPTSTR);
0022デフォルトの名無しさん
2008/11/01(土) 13:26:170023デフォルトの名無しさん
2008/11/01(土) 13:50:40・開発環境・・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 が検出されました。
と言うエラーが出てデザインが表示できないんですが、どなたか原因がわかりますか??
0024デフォルトの名無しさん
2008/11/01(土) 14:51:08Form1.h側に問題があるんだろ
0025デフォルトの名無しさん
2008/11/01(土) 15:00:24VS2008を再起動して見てみるとリストにあるんですけど、再起動なしで出てくるようにするにはどうすればいいんですか?一度ビルドしてもだめでした。
0026デフォルトの名無しさん
2008/11/01(土) 21:55:04インスコした時の設定のままだとコンパイル等がC++基準になってるじゃないですか
それをC基準にするには設定のコンパイル言語の選択をCにする以外に変えるところはありますか?
あとその設定を既定値にするにはどうしたらいいですか?
よろしくお願いします。
0027デフォルトの名無しさん
2008/11/02(日) 03:30:060028デフォルトの名無しさん
2008/11/02(日) 16:57:12SQL Serverに接続することは可能ですか?
0029デフォルトの名無しさん
2008/11/02(日) 20:08:59VC++ 2008 EEで.NETやるときはC++/CLIという言語で書くことになる。
SQLConnectionで検索してみ。
0030デフォルトの名無しさん
2008/11/02(日) 20:33:08ありがとうございます。
さっそく検索してみますね。
0031デフォルトの名無しさん
2008/11/03(月) 15:28:47ttp://homepage2.nifty.com/natupaji/DxLib/program/ActionSample.cpp
を参考にしてアクションゲームを作っているのですが
// マップの描画
{
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 ) ;
のところを自分で書いた画像に置き換えようとしているのですが、なかなかうまくいきません・・・。
どのようにすればいいのか教えてもらえないでしょうか?
0032デフォルトの名無しさん
2008/11/03(月) 21:11:350033デフォルトの名無しさん
2008/11/03(月) 22:45:250034デフォルトの名無しさん
2008/11/03(月) 22:48:14003531
2008/11/03(月) 22:59:47どうしてもキャラクタの描写を自分の書いた画像に置き換えることができない状態です・・・。
0036デフォルトの名無しさん
2008/11/04(火) 09:47:100037デフォルトの名無しさん
2008/11/04(火) 09:59:15間違ってるところも指摘できないじゃないか。
0038デフォルトの名無しさん
2008/11/04(火) 10:17:240039デフォルトの名無しさん
2008/11/04(火) 11:06:580040デフォルトの名無しさん
2008/11/04(火) 13:38:47loadgraphが全部小文字なのはおかしいな
0041デフォルトの名無しさん
2008/11/04(火) 13:41:54どこが引っ掛かってるのだろうか。一応絵は出るらしいからパス設定じゃなさそうだし。
0042デフォルトの名無しさん
2008/11/04(火) 20:33:37PC初期化したのでVC++を再インスコしたんですが
プログラム書いてもビルドできません。
2〜3秒フリーズして「応答なし」
となってしまいます。
これはスペックの問題なんですかね?
OS vista
CPU celeron M
メモリ 2G
のノートPCです。
0043デフォルトの名無しさん
2008/11/04(火) 20:39:57HCURSOR hCursor;
hCursor = AfxGetApp()->LoadCursor(IDC_WAIT);
SetCursor( hCursor );
hCursorがNULLになるんです
0044デフォルトの名無しさん
2008/11/04(火) 23:01:290045デフォルトの名無しさん
2008/11/05(水) 01:05:52たとえばグローバル変数を使って
// グローバル変数
int g_count;
// ボタン1押下時処理
void OnButton1()
{
g_count++;
}
// ボタン2押下時処理
void OnButton2()
{
g_count++;
}
のようにやることができますが、
同様のことをグローバル変数を使わずにやる方法はないでしょうか?
0046デフォルトの名無しさん
2008/11/05(水) 01:09:440047デフォルトの名無しさん
2008/11/05(水) 02:47:470048デフォルトの名無しさん
2008/11/05(水) 09:38:48言語とか環境は何?
まあWM_SETFONTで。
0049デフォルトの名無しさん
2008/11/05(水) 09:39:230050デフォルトの名無しさん
2008/11/05(水) 10:20:330051デフォルトの名無しさん
2008/11/05(水) 10:39:420052デフォルトの名無しさん
2008/11/05(水) 15:46:31フォントが変わりませんと、また質問が来る・・・と
0053デフォルトの名無しさん
2008/11/05(水) 21:45:030054デフォルトの名無しさん
2008/11/05(水) 21:52:45m_Btn1.EnableWindow(TRUE);
でも
m_Btn1.SetCheck(BST_UNCHECKED);
でも出来ません。起動後一瞬黒くなるんですが、すぐ灰色になります。どういうことですか?
0055デフォルトの名無しさん
2008/11/05(水) 22:38:10あるいはどこのフォルダに格納されているのでしょうか?
iostreamを用いたプログラミングがしたいのですが…
0056デフォルトの名無しさん
2008/11/05(水) 22:43:530057デフォルトの名無しさん
2008/11/05(水) 22:44:03コントロールのクラスを作って、その中でメッセージ対応の処理を書く以外で、クラスを作らずに親ウィンドウでメッセージ処理をするにはどうすればいいんですか?
0058デフォルトの名無しさん
2008/11/05(水) 22:45:59それででますね…
再インストールしたほうがよさそうですね
0059デフォルトの名無しさん
2008/11/05(水) 22:54:51あ、違います。
#include <iostream>
じゃなくて
#include <unistd.h>がエラー出てました
unistd.hというヘッダファイルはどうやって登録すればいいんでしょうか?
unistd.hというファイルをどこからかダウンロードして#include ""の絶対パスで指定するんですか?
0060デフォルトの名無しさん
2008/11/05(水) 23:06:59Windowsでいうとこの<windows.h>みたいなもの。
当然VC++用の<unistd.h>なんてない。
ようするに、VC++でそれをコンパイルさせないといけないのなら、
<unistd.h>なしでコンパイルできるようにすることこそがWindowsへの移植という君の仕事。
趣味ならCygwinでGCCでも使っておけ。
0061デフォルトの名無しさん
2008/11/06(木) 06:14:00とりあえず、エラーが出た
#include <unistd.h>
をコメント行(//)に変えた状態でコンパイルしてみれば、<unistd.h>内で
宣言・定義された関数や定数のうち、実際にプログラム中で使われている
ものだけが未定義エラー等で出力されると思うので、それらの機能や値の
意味を調べて、Windows APIや、Windowsの定数に置き換えてやればよい。
ソース内で使われている場所は、コンパイルエラーや警告が出た行。
エラーとして出ない関数や定数は、今回のプログラム中では使われて
いないので、放置してよい。
バカ正直にUnix互換のライブラリを用意する必要はない。
0062デフォルトの名無しさん
2008/11/06(木) 10:01:10状況がわからんけど、ハンドラは書いた?
0063デフォルトの名無しさん
2008/11/06(木) 16:01:05ハンドラはこれだけではダメなんでしょうか?
ボタンが灰色なだけでなく、メッセージも受け取れません。
ヘルプを見れば全てわかるように書いてあるそうですが、仕組みがわからず読み取ることもできません
おしえてください。お願いします。
//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");
}
0064デフォルトの名無しさん
2008/11/06(木) 17:20:53せめてIDは、、リソースをアクティブにした状態で編集メニューから
リソースシンボル→新規作成で作ってそれ使ったほうがいいぞ・・
今までのViewにそのやり方でボタン貼り付けたら機能するから
CDockablePaneの仕様によるのかもね。
0065デフォルトの名無しさん
2008/11/06(木) 17:43:29CSplitterWndクラスで作成する分割ウィンドウみたいなやつなら、ペイン
自体はCFrameWndみたいな枠だけじゃないのかな?
何がやりたいのか判らんが、CReBarとCDialogBarとかを使う方が簡単じゃ
ないのかな?
慣れていれば、シンボルはresource.hを直接編集してもいいと思うけど、
とりあえずマジックナンバーはやめようよ。
VC6ではできたのに、2003以降、IDE内で開いているプロジェクトのリソ
ースペインに、他のリソースを開いてドラッグ&ドロップでコピーしたり、
カット(CTRL-X)⇒ペースト(CTRL-V)できないけど、2008って直ってるの
かな? リソース編集しててると、突然IDEが落ちるなんてこともある。
0066デフォルトの名無しさん
2008/11/06(木) 18:35:38ボタンではなくてドックパネルを徹底的に調べてみます。
他のコントロールは継承クラスを作ってそこでメッセージ処理をしていたのですが、
さすがにボタン1つのメッセージ処理のためにクラス作成は酷いんじゃないかと思い、、、が、うまくいかずはまりこんでしまいました。
マジックナンバーはアプリウィザードで作られたひな形がCreateのなかで連番を使っていたので
そのまま続きの数字を使って追加してしまいました。いつかはIDSの登録物と重なるし、オブジェクトが判別しづらいのでは?とは思ったのですが
全て修正しないと気持ちよくないし、ひな形の流れに負けて連番にしてしまいました。
0067デフォルトの名無しさん
2008/11/07(金) 00:00:290068デフォルトの名無しさん
2008/11/07(金) 02:44:590069デフォルトの名無しさん
2008/11/07(金) 13:01:28変更することもできるけれど、気にせずにそのまま使うのが普通なんでしょうか。
0070デフォルトの名無しさん
2008/11/07(金) 20:45:090071デフォルトの名無しさん
2008/11/08(土) 02:29:25VC++2008で簡単なコンソールアプリを作ってみたのですが、
これをビルドして他人に渡してもエラーが出て実行できません。
他人のWindows環境で動作させるにはどのようにビルドすればよいのでしょうか?
0072デフォルトの名無しさん
2008/11/08(土) 03:38:220073デフォルトの名無しさん
2008/11/08(土) 04:42:30VC++2008ExpressEditionで、Formでプログラムを作り始めて、
スクロールバーを縦横で表示・非表示を切り替えたい時、
ツールからフォームに貼り付けるとこうなります。
↑
← →↓
のように右下に小さい四角が出来ません。
↑
↓
← →□
こんな風にしたい
上手いことスクロールバーを表示するにはどこをいじればよいでしょう?
0074デフォルトの名無しさん
2008/11/08(土) 18:01:28内蔵しているメンバを弄るの。
this->HorizontalScroll->Visible = true;
this->VerticalScroll->Visible = true;
とか何とか
0075デフォルトの名無しさん
2008/11/08(土) 23:48:18SystemTimeToVariantTime
関数をを使いたいのですが、使用すると以下のエラーが発生します
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 です。
0076デフォルトの名無しさん
2008/11/08(土) 23:51:39Windows SDKをインストールしろ。
インストールしたら、スタートメニューのMicrosoft Windows SDKの中のどっかにVisual Studioとの統合みたいな項目があるからそれを叩け。
007775
2008/11/09(日) 00:16:120078デフォルトの名無しさん
2008/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);
を追加
これ以外になにをすればいいんですか?
これでコンパイルできるのですが、向こう側が透けて見えてダイアログが表示されないんです。教えてください。お願いします
0079デフォルトの名無しさん
2008/11/09(日) 09:10:18MFC ライブラリ リファレンス
CDialog::Create
リソースからダイアログ ボックス テンプレートを使ってモードレス ダイアログ ボックスを作成します。
親ウィンドウを作成したときにダイアログ ボックスを表示する場合は、
ダイアログ ボックス テンプレートで WS_VISIBLE スタイルを使用します。
それ以外の場合は、ShowWindow 関数を呼び出す必要があります。
0080デフォルトの名無しさん
2008/11/09(日) 09:49:37できました。ありがとうございました!
0082デフォルトの名無しさん
2008/11/09(日) 20:09:18引数の型とかを教えてくれるのが感動した
0083デフォルトの名無しさん
2008/11/11(火) 07:41:54確保するのはすぐに判ったのですが、変更方法がさっぱりです。
0084デフォルトの名無しさん
2008/11/11(火) 08:00:290085デフォルトの名無しさん
2008/11/11(火) 11:39:36VC++2008WindowsXP
実は他の方のサンプルを試してみたいのですが
サンプルの使い方もわかりません
手持ちの解説書にはそういうことは書いてありませんのでどなたかお力貸してください
下記は先人の方が質問されて、大先輩の方がサンプル付きで解答されています
上のアドレスが最初の質問で下のアドレスが2回目の質問のようです
最終的にはサンプルの全角空白(書いた方がわざとそうしています)を半角空白にして
SendInput()関数を入れると問題なく動いているようです
質問「キーの自動入力」
ttp://okwave.jp/qa4023937.html?ans_count_asc=2
ttp://soudan1.biglobe.ne.jp/qa4027968.html
質問者の方と私は環境が似ているので
このサンプルを動かしてみたいのですが
VC++の開き方すらよくわからない状態ですので
どなたかわかるように説明していただけないでしょうか?
私がやったこと
サンプルの全角空白を半角空白に8箇所直した
VC++2008を起動する→ファイル→新規作成→プロジェクト→Win32→
Win32プロジェクト→プロジェクト名入力→OK
(Win32アプリケーションウィザード)次へ→何も変更しないで完了
出てきた”(グローバルスコープ)”というソースコードのページの
どこに上記のサンプルを貼り付ければいいでしょうか?
”// TODO: ここにコードを挿入してください。”の部分へ貼り付けたり
・このときエラーはいっぱい出ました
わからないので全てを削除して貼り付けてみたりしましたがビルドできません
・この時のエラーは下記の1つでした
fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
VC++2008の開き方、サンプルの張り方教えてくださいm( _ _ )m
0086デフォルトの名無しさん
2008/11/11(火) 11:50:54もっと初歩的なことやったほうがいいと思うよ。
0087デフォルトの名無しさん
2008/11/11(火) 11:53:48そこをなんとか教えていただけないでしょうか?
よろしくお願いします
取りあえずサンプルの全角空白を半角空白に直した後どうすればよいのか教えてください
お願いします
0088デフォルトの名無しさん
2008/11/11(火) 12:00:55{
・
・
}
これが関数だよ。
適当に最後にでも置いて、
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: の次あたりに放り込んでもいいけどな。
0089デフォルトの名無しさん
2008/11/11(火) 12:10:40マジでありがとう(;´д⊂ヽ
どうしていいのかわかんなくて困ってたんです
使いたいところってのはまだ(ソースコード作って)ないんです
取りあえずこのサンプルだけで自分の環境でも動かせないのか知りたかったんです
詳しく本当にありがとうございました
助かりました心から感謝してます
ありがとうございましたm( _ _ )m
0090デフォルトの名無しさん
2008/11/11(火) 16:54:06VC++と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++で使えますか?
よろしくお願いいたします
0091デフォルトの名無しさん
2008/11/11(火) 16:59:22C++は言語の名前、VC++はC++で開発するための製品、の名前。
0092デフォルトの名無しさん
2008/11/11(火) 17:03:05即レスどもありがとです!
ということは問題無しですね
ドキドキしちゃったよ
教えてくれてありがとうですm( _ _ )m
0093デフォルトの名無しさん
2008/11/12(水) 14:44:550094デフォルトの名無しさん
2008/11/14(金) 00:54:01VC++とC++で迷うのは想定外だったけど
確かに知らなかったら迷うよなーとは思った
0095デフォルトの名無しさん
2008/11/14(金) 01:57:51人に聞く前に検索すれば済む話。
0096デフォルトの名無しさん
2008/11/14(金) 06:39:480097デフォルトの名無しさん
2008/11/14(金) 10:36:02お世話になります
先輩たちのお陰でなんとかブラウザ作れましたありがとうございます
(実は解説本、そのまんま^^)
これでファイルの読み書きとあわせて2つのことができるようになりましたw
ありがとうです
この先、目標はブラウザで読み込んだテキスト内で文字検索して保存するです
例えばヤフーのトップ画面を見て「年金」や「少年」という文字を検索して
あればその記事を保存するってことをやってみたいです
やりかたとしてテキストファイルに保存しないで
トップ画面をダウンロードしながら検索もする方法を希望です
多分これが一番早い方法だと思うからです
ダウンロード中のヤフートップ画面から文字列検索する方法教えてください
ブラウザを作れたと言っても解説本のまま入力して作っただけなので
私はまだ難しいことは一切わかりません
ヤフートップ画面のテキストを保存する方法もわかりません
どなたか優しく教えてください
お願いします
0098デフォルトの名無しさん
2008/11/14(金) 11:06:23C++の参考書などでは、 new で配列を確保した場合に開放は delete [] で行うとなっていますが
タスクマネージャで使用メモリを調べてみると、delete [] ではなく delete のみの表記でも
同じように開放されているようです。
(MB単位の配列の new と delete を何千何万回繰り返しても、使用メモリが増加していかない)
これは、VC++ではdeleteの配列開放処理についてはコンパイラが
面倒をみてくれるという事でしょうか?
それとも、現在のC++では delete でも delete [] でもどちらでも問題ないのですか?
0099デフォルトの名無しさん
2008/11/14(金) 14:21:59new[]したなら必ずdelete[]。deleteするのは[]の無いnewしたもの。混同しちゃダメ。
コンストラクタ/デストラクタが無いものだと問題が起きない場合もあるのかもしれないけど。
0100デフォルトの名無しさん
2008/11/14(金) 14:44:54レスありがとうございます。
なるほど、単純なデータ配列ではなくて、コンストラクタやデストラクタのある
オブジェクト配列だと問題が発生するということですか。
メモリの開放自体がされないわけではなく、そういったオブジェクト内部処理に
問題が発生するという解釈でいいですかね。
単純なデータ配列(int配列のような)の場合に何か問題が起きる事例はありますか?
もちろん本来の記述ルールとして[]を付けるというのはわかってはいますが、
具体的にどういう問題が出るのかというのがいまいち良く分かりません。
0101デフォルトの名無しさん
2008/11/14(金) 14:55:230102デフォルトの名無しさん
2008/11/14(金) 14:58:130103デフォルトの名無しさん
2008/11/14(金) 15:10:06ttp://m--takahashi.com/bbs/pastlog/06700/06661.html
>多くの処理系では、先頭の一つだけデストラクタが動き、
>そして全部解放されます。
という事らしい
なのでVC++の場合には単純データ配列は全開放されるということね
つけないよりは付けた方が安全ではあるけど
0104デフォルトの名無しさん
2008/11/14(金) 15:22:19new[]してdeleteは単純に間違い。
0105デフォルトの名無しさん
2008/11/14(金) 15:22:55未定義のものは未定義でいいけど、間違った説明はいかんよね。
0106デフォルトの名無しさん
2008/11/14(金) 15:26:26頭固いな
ここはC++のスレじゃなくてVC++のスレだから、
VC++としての挙動についての話をしてるだけだよ
もちろんC++のルールとしては間違いだ
0107デフォルトの名無しさん
2008/11/14(金) 15:31:37誰か該当する文書知らない?
0108デフォルトの名無しさん
2008/11/14(金) 15:41:47VC++がそういう動作をすることを狙ってわざとそんなコードを書いたって、全く利点無し。
0109デフォルトの名無しさん
2008/11/14(金) 15:49:53あれか、委員長タイプか。ルール絶対主義というか
誰一人正しいか間違いかなんて質問はしてないだろうに
間違った記述をした時にこういう風に動くって事を知っておくだけでも
デバッグする上では役にたつもんだぜ?
0110デフォルトの名無しさん
2008/11/14(金) 16:11:330111デフォルトの名無しさん
2008/11/14(金) 16:26:57多いなそういう本やサイト
思い込みだけで書いてるのは本当に困る
0112デフォルトの名無しさん
2008/11/14(金) 16:41:25まず自分で調べてある程度のコードを書いてから出直してこいよ
0113デフォルトの名無しさん
2008/11/14(金) 20:25:13お世話になります>>97です
何をどう調べればいいのかもわかんないんですよ
作成したブラウザでヤフートップを表示しているので
ヤフートップページのテキストは取り込めているとは思うのですが
どうやって文字を検索するのかわかんないです
すいませんが何を調べればいいのか教えていただけないでしょうか
お願いします
0114デフォルトの名無しさん
2008/11/14(金) 20:28:570115デフォルトの名無しさん
2008/11/14(金) 20:29:24ありがとうございます。参考になりました。
やっぱりそういう動きになっているんですね。
0116デフォルトの名無しさん
2008/11/14(金) 20:33:40さようなら\(^o^)/
あなたのような人はプログラムなんてやめてパソコンを廃棄するのがベストかと
0117デフォルトの名無しさん
2008/11/14(金) 20:50:38みんなできないくせに解答してるとか???
0118デフォルトの名無しさん
2008/11/14(金) 20:51:400119デフォルトの名無しさん
2008/11/14(金) 20:54:19HTMLについては勉強した?
0120デフォルトの名無しさん
2008/11/14(金) 21:10:330121デフォルトの名無しさん
2008/11/14(金) 21:15:35IWebBrowserがあるなら、そこからIHTMLDocument2辺りを取得すれば、
HTML内のJavaScript同様、DOMでぐりぐり探れる。
0122デフォルトの名無しさん
2008/11/14(金) 21:36:13誰がURLの話なんかしてるんだ?
HTMLから取得ってそのHTMLから取得する方法を聞いてるんだけど
どうやって取ればいいのかわかんない
一応、正規表現とかちょっとくらいはわかるよ
0123デフォルトの名無しさん
2008/11/14(金) 21:41:03トップページには記事おいてないぞ リンクが貼ってあったとしても
0124デフォルトの名無しさん
2008/11/14(金) 22:03:49見るだけで、どうやればここから文字列を取得するのかがわかんないんだ
どこに対してどういう命令出すのかがわかんないんです
0125デフォルトの名無しさん
2008/11/14(金) 22:05:23>>121
0126デフォルトの名無しさん
2008/11/14(金) 22:14:080127デフォルトの名無しさん
2008/11/14(金) 23:25:17これわかんないんです
WEBブラウザの命令でそういうのがあるんですか?
WEBブラウザを調べたけどわかりません><
0128デフォルトの名無しさん
2008/11/14(金) 23:29:19一週間はレスすんなゴミクズが
0129デフォルトの名無しさん
2008/11/14(金) 23:32:10お前どこのがきや
0130デフォルトの名無しさん
2008/11/14(金) 23:32:41はよ答えろやカス
0131デフォルトの名無しさん
2008/11/14(金) 23:34:00できないくせに解答者やってる奴ってお前のことかwww
はらいてー
なんでそんなに怒ってるの?
たかが2chでwww
0132デフォルトの名無しさん
2008/11/14(金) 23:34:23IWebBrowser2のDocumentプロパティ
0133デフォルトの名無しさん
2008/11/14(金) 23:35:07お前は頭わるくは無いと自分では思ってるようだが
要領は最高に悪そうだな
意味もわからんやろなw
0134デフォルトの名無しさん
2008/11/14(金) 23:36:41それでいけるんですか
ありがとです
とりあえず>>128の小僧はこの先、解答すんなよ
知っててもしゃべらねくていいから
つーかお前出入り禁止
もうくんなカス
0135デフォルトの名無しさん
2008/11/14(金) 23:38:050136デフォルトの名無しさん
2008/11/15(土) 01:31:35アホとしか
0137デフォルトの名無しさん
2008/11/15(土) 11:35:220138デフォルトの名無しさん
2008/11/15(土) 11:51:38設定で可能ですか?
0139デフォルトの名無しさん
2008/11/15(土) 15:49:42本気だったら病院から書き込んでるに違いない。
0140デフォルトの名無しさん
2008/11/15(土) 16:46:39期待しちゃ駄目
0141デフォルトの名無しさん
2008/11/16(日) 14:26:41お勧めのサイトや書籍がありましたら教えてください。
とりあえずは猫でもわかるプログラミングを見て勉強しようと思ってます。
0142デフォルトの名無しさん
2008/11/16(日) 14:28:05全くの初心者なら猫でも〜でいいよ
0143141
2008/11/16(日) 14:33:16昔N88BASICとCをちょっとかじりました。
とはいえX6800とかの時代なので、最近のWindowsプログラミングはさっぱりな感じです。
0144デフォルトの名無しさん
2008/11/16(日) 20:03:38C++を勉強しつつ
Windowsプログラムの作法を勉強しなきゃならん
っていうのが初学者が投げ出してしまうところ
最初は
CとWin32APIっていうのが無難なのかなあ
0146デフォルトの名無しさん
2008/11/16(日) 23:00:03フリーのツールつかえばええやんって言うだろうが
初心者ほどまとまったパッケージがオススメ
つーことでウインドウプログラム作る様になったら
2万円もしないんだしStd買っちゃいな
クラス図も作れるし
0147デフォルトの名無しさん
2008/11/16(日) 23:00:19VSの呼び出し履歴とか最初全然使ってなかったなぁ( ´ω`)
0148デフォルトの名無しさん
2008/11/17(月) 02:23:10intについて聞きたいです
整数型の型名にintってありますよね
この型名のintと
関数mainの前に書かれているintは同じなのでしょうか?
私の所有する解説本ではmainについて
int main (void) メイン関数の定義開始
とだけ説明しているだけなのです
意味を並べていくと
int:整数型の型名 main:main関数の定義開始 void:戻り値のない評価式
ってことですよね
なぜmainの前にintを書くのか凄く気になります
勝手に想像しちゃうと
最後に書かれているreturn 0(戻り値が0なら正常終了、それ以外なら異常終了)
このゼロは整数なのでintを記載するのかな?
main関数定義開始の行頭にintはなぜですか?
私の所有する解説本は結局、最後のページまでこのことには触れていませんでした
勝手な推測してしまいましたが
どなたか正しい答え教えてください
0149デフォルトの名無しさん
2008/11/17(月) 02:35:430150デフォルトの名無しさん
2008/11/17(月) 02:39:05↑ ↑ ↑
戻り値 関数名 引数
これを見て意味が分からないのであればプログラムはあきらめて下さい。
0151デフォルトの名無しさん
2008/11/17(月) 02:55:27まだ148の読んでいた本がダメすぎただけという可能性が高いということしか分からない。
0152デフォルトの名無しさん
2008/11/17(月) 03:15:01>>150さんのでわかったよ
みなさん夜分お疲れのところありがとうございましたm( _ _ )m
0153デフォルトの名無しさん
2008/11/17(月) 03:18:47私の推測は当たってたってことですよね
もしかして私はセンスあるのかなwww
0154デフォルトの名無しさん
2008/11/17(月) 06:15:26有料でも構わないのでC++の質問すれば
私が理解できるまで懇切丁寧に教えてくれるサイトないですか
解説本は解説するために専門用語連発でわかりにくい部分があるんです
その専門用語を解説するページが無いので
結局、解説本→グーグル→解説本→グーグル(たまにIT辞書) こんな感じです
進行するのがかなり時間かかってしまいます
かと言って基礎をすっ飛ばすわけにもいかず
超初心者用とか超入門とか書いてあっても中身は専門用語だらけ
無料の掲示板では解答者の善意で教えてもらってるわけで
解答者もいちいち注釈つけてられないですよね
てことで嘘つき解説本はタイトルに「超入門」とか「超初心者」とか書いてるけど
内容は本当の初心者にでもわかるものはないですね
だいたい解説に注釈無しで専門用語を使うこと自体
初心者には無理。
著者はタイトルに美味しそうな単語並べてとにかく売れる事が優先のものばかり
教えることが大前提の本はないでしょうか
超々ーーーぉ入門者でも理解できるサイト(有料可)か解説本教えてください
0155デフォルトの名無しさん
2008/11/17(月) 09:00:29あなたの知能レベルで理解できるかどうかなど他人にわかるものではありませんよ。
0156141
2008/11/17(月) 09:35:16stdは2005EEからのアップデートが可能みたいですね。
確かにそれなら安いし購入も検討します。
まだリソースエディタがフリーだとどう辛いのかもわかりませんが…
0157デフォルトの名無しさん
2008/11/17(月) 23:12:09フリーソフトを使うってのは辛いって話でそ
0158デフォルトの名無しさん
2008/11/18(火) 00:56:240159デフォルトの名無しさん
2008/11/18(火) 07:46:21coutはC++でしか使えない
printfはCでも使える
0160デフォルトの名無しさん
2008/11/18(火) 07:51:42こちらのサイトを参考にしてVisual C++ 2005で練習をしているところなのですが
完成したプログラムを「デバッグ開始」で動かそうとすると、
一瞬だけコマンドプロンプトの黒画面が出て、すぐに消えてしまいます
最初のうちは普通に実行され、黒画面が残ったままになったので
設定を間違えて弄ってしまったのかもしれません
原因、元に戻す方法がわかる方はいらっしゃいませんか?
0161デフォルトの名無しさん
2008/11/18(火) 09:02:07どの道付属のアイコンエディタは使い物にならんし
0162デフォルトの名無しさん
2008/11/18(火) 09:03:33最後にgetch()を入れればキーを押すまで画面がとまるよ
0163デフォルトの名無しさん
2008/11/18(火) 10:05:38了解です
Printfで書くようにします
Cout使わないといけない場合なんかはないですよね
ありがとうございます
0164141
2008/11/18(火) 10:18:26解説ページなどでResEditやXN Resource Editorでそれほど問題なさそうだったので、
どのようなデメリットがあるのかよくわからないということでした。
わかりにくくてすみません。
とりあえずフリーのものでやってみようかなと思います。
0165デフォルトの名無しさん
2008/11/18(火) 16:42:30ありがとうございます
でも最後にgetch();を付けるとエラーが…
「デバッグ無しでビルド」を選択したら
とりあえずは消えない様になりました
0166デフォルトの名無しさん
2008/11/18(火) 16:44:500167デフォルトの名無しさん
2008/11/18(火) 17:21:411.system("pause");
2.getchar();
3.main関数の最後の行("}")にブレークポイントをいれる
から好きなのを選べばいいと思うよ
0168デフォルトの名無しさん
2008/11/19(水) 12:30:43今日からC++を学ぼうと思い、VC++2008EEを使ってみたのですが
コード補完機能がないのが気になりました。
VC#2005EEのときは、1文字目から予測リストが出てくるので非常に使いやすかったのですが
VC++2008EEにはそのような機能はないのでしょうか。
0169デフォルトの名無しさん
2008/11/19(水) 13:32:24ないよ
せいぜい関数の引数リストやクラスのメンバリストが出る程度だがそれでもないよりましだ
0170デフォルトの名無しさん
2008/11/19(水) 13:33:560171デフォルトの名無しさん
2008/11/19(水) 13:51:54プロジェクトをつくるとそのフォルダにReadMe.txtが自動で作られますが
ここに各ソースファイルの簡単な説明を追記したいのですが、どのようにすればよいのでしょうか?
作成されたReadMe.txtの最後の方に、
「AppWizard では "TODO:" コメントを使用して、ユーザーが追加またはカスタマイズする
ソース部分を示します。」とか書いてあるのですが、
各ソースファイルのコメント部分にTODO:と入れればその行が自動的に
ReaMe.txtに出力されるのかと思ったのですが、なんともなりません。
何かやり方が違うのでしょうか?
そういったReadMe.txtへの説明の自動追記機能はありますか?
それともRedMe.txtを直接開いて手書きで説明を加えなくてはならないのでしょうか?
0172デフォルトの名無しさん
2008/11/19(水) 13:52:53ひょっとしてエディションの問題???
0173デフォルトの名無しさん
2008/11/19(水) 16:06:59コンパイルエラーならconio.hがインクルードされてないとかじゃね
0174デフォルトの名無しさん
2008/11/19(水) 16:13:360175デフォルトの名無しさん
2008/11/19(水) 16:19:32AppWizardがあなたが追加、またはカスタマイズすべきソース部分を教えてくれているだけ
AppWizardが生成するReadMeはあなたに対する説明文であって、あなたのアプリケーションを使う人に対するものではない
0176デフォルトの名無しさん
2008/11/19(水) 16:43:17レスありがとうございます。たしかに、ないよりはましですね。
もやもやがなくなったので勉強してきます。
0177デフォルトの名無しさん
2008/11/19(水) 16:45:48レスありがとうございます。
えーと、つまりReadMe.txtもTODO:コメントも、後から
自分で追記したりするようなものではないということでいいんでしょうか?
ReadMe.Txtはプロジェクト作成時にVCが自動作成したファイルだけを示し、
その内どこをいじるのかがTODO:コメントで指示されるという解釈であってますか?
0178デフォルトの名無しさん
2008/11/20(木) 19:29:23メッセージマップとかをクラスのプロパティからいっぱい作って見れ 全部同じコメだ
0179デフォルトの名無しさん
2008/11/21(金) 12:12:07int* pA; とするのがいいのか
int *pA; とするのがいいのか教えていただけませんか。
テキストにはどちらでも良いと書いてありましたが、できれば多数派に合わせておきたいので・・・
0180デフォルトの名無しさん
2008/11/21(金) 12:36:44ポインタをtypedefする
typedef int *LPINT
LPINT pA;
0181デフォルトの名無しさん
2008/11/21(金) 16:31:05後者が一般的
0182デフォルトの名無しさん
2008/11/21(金) 16:32:25ではダメですか?
0183デフォルトの名無しさん
2008/11/22(土) 16:31:46名前:
E-mail:
内容:
超初歩の質問ですいません。環境はXP,VC++2008(SP1)でインストール直後のまっさらな状態です。
String *name = textName->Text;
が
error C3699: '*' : この間接指定を型 'System::String' で使用できません
と、VisualStudio2008からダメ出しされまして、エラーメッセージどおりに、
String ^name・・・・
としたらうまく通りました。
エラーの原因はStringクラスが定数文字列前提だからかな?とも
思ってますが、それよりも^演算子(なんでしょうか?)の
意味がさっぱり調べられません。
ググってもこれといったものが出ませんでした^^;
^の意味をどなたか教えていただけませんでしょうか・・・。
0184デフォルトの名無しさん
2008/11/22(土) 16:51:51http://msdn.microsoft.com/ja-jp/library/ms235215(VS.80).aspx
0185デフォルトの名無しさん
2008/11/22(土) 17:08:32助かりましたー。新仕様だったんですね。
0186デフォルトの名無しさん
2008/11/22(土) 19:29:020187デフォルトの名無しさん
2008/11/22(土) 20:37:46E-mail:
内容:
なんぞこれ
0188デフォルトの名無しさん
2008/11/22(土) 21:32:160189デフォルトの名無しさん
2008/11/23(日) 00:33:46ソースを書き換える前に保存をしたいのですが、
全部丸ごと別名で保存する方法を教えてもらえませんか?
.cppや.hを個別に保存はできましたが、プロジェクトの中身を丸ごと別名で保存はできないのでしょうか?
0190デフォルトの名無しさん
2008/11/23(日) 01:26:10元のプロジェクトの中身をコピーして別名にしたあと上書き保存すれば結果は同じだと
0192デフォルトの名無しさん
2008/11/23(日) 03:58:120193デフォルトの名無しさん
2008/11/23(日) 11:48:07// TODO: ここに 派遣さんが コマンド ハンドラ コードを追加します
0194デフォルトの名無しさん
2008/11/23(日) 17:04:29VCでビルドするともちろん日本語で表示されますが
日本語用のストリングテーブルがどっかにあるんですか?
0195デフォルトの名無しさん
2008/11/23(日) 22:14:000196デフォルトの名無しさん
2008/11/23(日) 22:25:55Javaのinterfaceと同じ感じなのか?
言語仕様にはこんなのなかったとおもうんだが
0197デフォルトの名無しさん
2008/11/23(日) 22:28:580198デフォルトの名無しさん
2008/11/23(日) 22:39:06調べてみたらそのようですね
ありがと
0199デフォルトの名無しさん
2008/11/24(月) 16:16:26MSVCR80.DLLというランタイムに依存してしまうようなんですが
このDLLは再配布可能でしょうか?
0200デフォルトの名無しさん
2008/11/24(月) 19:20:220201デフォルトの名無しさん
2008/11/26(水) 07:43:24デザイン画面は 「このファイルのデザイナに、デザインできるクラスがないため、デザイナを表示できませんでした。」というエラーが出てしまいます
↓ちなみにこのコードを追加したらなってしまいました
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;
}
}
前に成功したビルドの状態に戻せないんでしょうか
最初からやり直せば次に進めるんでしょうか
0202201
2008/11/26(水) 11:04:560203デフォルトの名無しさん
2008/11/26(水) 20:30:45コード生成のMTとMTdって何が違うんですか?
Dllが付くものは駄目だということは知っているんですが…
0204デフォルトの名無しさん
2008/11/26(水) 22:16:310205デフォルトの名無しさん
2008/11/26(水) 23:16:520206デフォルトの名無しさん
2008/11/26(水) 23:26:240207デフォルトの名無しさん
2008/11/27(木) 00:00:340208デフォルトの名無しさん
2008/11/27(木) 00:45:380209デフォルトの名無しさん
2008/11/27(木) 00:52:040210デフォルトの名無しさん
2008/11/27(木) 00:59:050211デフォルトの名無しさん
2008/11/27(木) 09:56:200212デフォルトの名無しさん
2008/11/27(木) 11:39:13Releaseモードでビルドするんだよ
0213デフォルトの名無しさん
2008/11/27(木) 16:52:45int max(int x,int y);
という関数プロトタイプを宣言し
main()があるソースファイルとは別のmyfunc.cppという名前のソースファイルに
int max(int x,int y)
の定義文を記述しました。
そしてmain()があるソースファイルのはじめに
#include "myfunc.h"
と記述して動いたのですが、はじめの#include文を消去しても、ヘッダファイルに適当な関数プロトタイプの宣言を追加しても
動きました。(定義はしていません)はじめに#includeを記述する必要はあるのでしょうか。
そもそもヘッダファイルの必要性がよくわかっていないので、教えていただけないでしょうか。
0214デフォルトの名無しさん
2008/11/27(木) 17:21:44クリアしてから試してみては。
0215デフォルトの名無しさん
2008/11/27(木) 18:07:33extern int max(int x,int y);
で、cまたはcppソースの方にプロトタイプ宣言を入れる
cpp内で関数を参照する時、呼び出し側の関数よりも上に本体のコードがあれば
プロトタイプ宣言は必要ない。
本体が下にある場合はプロトタイプ宣言が必要。
0216デフォルトの名無しさん
2008/11/28(金) 00:11:19ありがとうございました。いろいろ試してみます。
0217デフォルトの名無しさん
2008/11/28(金) 12:14:13テキストボックスに入力した値がどこに入るのかわかりません。
Messagebox::Showでそれっぽいものを表示してみようとも思ったんですが、
System:::string この型は演算子として使用できません(String[0]とかも)となります。
private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) {}の中で自分で何かをやるんでようか?
助けてorz
0218217
2008/11/28(金) 12:16:010219デフォルトの名無しさん
2008/11/28(金) 12:21:32もしくは本でも読むか。
試しに、buton1_Clickの中に MessageBox::Show(textBox1->Text); とか書いてみ
0220デフォルトの名無しさん
2008/11/28(金) 12:28:35ありがとうございました
おかげでスーパーハカーになることができました!
0221デフォルトの名無しさん
2008/11/28(金) 13:34:02とりあえずmax()の本体を別のcppファイルに移してためしてみるといい
ヘッダーの使い方がわかるはずだ
0222デフォルトの名無しさん
2008/11/28(金) 21:13:21ありがとうございます。max(int x,int y)が定義されているcppファイルを削除しても動いてしまったので
ためしに maxi(int x,int y)に名前を変えたところ、無事(? 動かなくなりました。
using namespace std; を main() があるcppファイルのはじめに記述していたのですが
stdの名前空間の中にmaxがあったのが原因だったみたいです。
その後、ヘッダーファイルをincludeしなかったりしてみたりと色々試してなんとなくですがヘッダの意味がわかった気がします。
0223デフォルトの名無しさん
2008/11/28(金) 21:56:040224デフォルトの名無しさん
2008/11/29(土) 15:59:58class の宣言文でpublic:を記述するとclassの位置までインデントが戻ってしまうのですが、
classの位置より1段階インデントした状態にオートインデントするにはどうすればいいのですか?
0225デフォルトの名無しさん
2008/11/30(日) 10:19:41Visual C++ライクなエディタってありませんか?
Notepad++Portableは知ってるんですけど、折り畳みがダサいので・・・
0226デフォルトの名無しさん
2008/12/03(水) 01:24:560227デフォルトの名無しさん
2008/12/03(水) 05:33:26仕様です。
どうしても作りたくなければReleaseビルド以外使うな
0228デフォルトの名無しさん
2008/12/03(水) 08:33:13プロパティいじれば好きに出来るよ
$(OutDir)
とか
$(IntDir)
を好きな名前にしたらいい
0229デフォルトの名無しさん
2008/12/03(水) 18:13:00コード生成設定を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が付かなければ問題ないですか?
0230デフォルトの名無しさん
2008/12/03(水) 18:41:50libcpmtdはデバッグ用。内部でデバッグ用のmallocとfreeを呼んでるから/MTdじゃないとリンクできない。
リリースビルドならlibcpmtを使う。
ってか、プロジェクトの作成をウィザード任せにすればその辺を自分でいじることなんてないと思うんだけど。
0231デフォルトの名無しさん
2008/12/03(水) 18:50:34リリースモードでやるときはMTでやるものなんですね
試しにリリースモードでMT生成してみたら通りました。
どうもありがとうございましたー。
0232デフォルトの名無しさん
2008/12/03(水) 20:24:26windowsXP 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版のアンインストーラーを使用しても、該当するものはありませんでした
何か解決策はないでしょうか?
0233デフォルトの名無しさん
2008/12/04(木) 10:44:160234デフォルトの名無しさん
2008/12/06(土) 01:18:55WinXP SP2でVisual c++ 2005 Express Editionです。
UNICODEのIniファイルの情報をGetPrivateProfileStringで取得しようと
しているのですが、lpReturnedStringにはlpDefaultの値が入ってしまいます。
IniファイルがANSIのときはうまくいきます。
GetPrivateProfileStringの引数はワイド文字にしているつもりです。
意図的にGetPrivateProfileStringWにしてもダメでした。
UNICODEファイルの際の注意点などあるのでしょうか?
ご教授ねがいます。
0235デフォルトの名無しさん
2008/12/06(土) 01:29:29INI系の関数はAでもWでもファイルの中身はマルチバイト文字として扱われる。
そのおかげで、Aで書き込んでWで読み取るなんてことができるんだけどね。
もちろん、文字コードの自動判別なんてやっていない。
0236デフォルトの名無しさん
2008/12/06(土) 10:27:18> UNICODEのIniファイル
拡張子がINIってだけで中身がUnicodeじゃあ、INIファイルとは呼べ
ないシロモノだな。
自分で、CStdioFileクラスのCStdioFile::ReadString()/WriteString()
なりを使って、1行ずつ読み込んで文字列処理するコードを書くしか
ないな。(w
0237デフォルトの名無しさん
2008/12/06(土) 12:35:20たしかにINIファイルって、ASCIIしか使わないけど……
0238デフォルトの名無しさん
2008/12/06(土) 13:08:53んなこたぁない。シフトJISであれば漢字やカナ文字だって使える。
でなきゃ、漢字やカナ文字を含むパス名やファイル名の文字列保存に
使えない。
0239デフォルトの名無しさん
2008/12/06(土) 13:49:53それは気がつかなかった。今度試してみよう。
ていうか、レジストリ弄りたくなくて、いまだにINIファイル使ってるんだよね。
0240デフォルトの名無しさん
2008/12/06(土) 14:34:14ずっとマシだと思えるんだが? ログインユーザー単位で設定が分けら
れるというメリットもあるし。
第一、レジストリなんて意識せずともWindowsのシステムでいじられ
まくりだぞ。
0241デフォルトの名無しさん
2008/12/06(土) 14:37:53Shift_JISというか、そこで使っているコードページの文字コード。
欧米ならWindows-1252だし、繁体中国語圏ならBig5という具合。
>>240
ファイルでもApplication Dataあたりに置けば、ユーザ別設定はできる。
0242デフォルトの名無しさん
2008/12/06(土) 15:03:55> ファイルでもApplication Dataあたりに置けば、ユーザ別設定はできる。
MFCフレームワークのデフォルト処理を前提に書いてしまった。言われ
れば、まぁ確かにそうだ。 ところで、複数インスタンス起動した
アプリからiniファイルへの同時アクセスとかって、今は問題ないん
だっけか?
0243デフォルトの名無しさん
2008/12/06(土) 16:50:51自フォルダにINIファイル作るなんて普通じゃないか?フリーソフトなんかは特に。
わざわざ選択肢減らす必要なんてないしケースバイケースでよかろう。
0244デフォルトの名無しさん
2008/12/06(土) 17:30:28Program Filesに置いたらVistaで問題が出る。
All UsersのAppDataとかでどうか。
0245デフォルトの名無しさん
2008/12/06(土) 17:41:50>Program Filesに置いたらVistaで問題が出る。
はじめやりずれーって思ったら他のユーザーでログインしたときを考えたら納得した
0246デフォルトの名無しさん
2008/12/06(土) 19:27:48> たんなるアプリの設定データはWindowsフォルダなんかにつくらんだろ。
昔は作りまくりだったんで、レジストリが搭乗したんだが?
今もMFCでCWinApp::SetRegistryKey()呼ばないとiniファイルを使うけど、
iniファイルが作られるデフォルトの場所はWindowsフォルダだよ。
>>244
> All UsersのAppDataとかでどうか。
自分(現在のログインユーザー)用の「マイドキュメント」フォルダの
パスはSHGetSpecialFolderLocation()で取得できるけど、これって取れる
んだっけ? もしかして決め打ち? それはそれで問題な気もするが?
なんて思ったら、
SHGetSpecialFolderLocation(hwndOwner,CSIDL_COMMON_APPDATA,...);
でいけるのか。 知らない間にCSIDLずいぶん増えているな。
ttp://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx
0247デフォルトの名無しさん
2008/12/06(土) 19:30:240248デフォルトの名無しさん
2008/12/06(土) 19:46:34勝手にやってくれんじゃなかったっけ?
具体的にはどういう風になんの?
正直Vistaなんて糞OS使った事もないから知らんが。
0249デフォルトの名無しさん
2008/12/06(土) 20:20:51なければさほど問題はなさそうな気もする
つかこれってINIファイルに限らず他のセーブデータにも
言える事だろ
0250デフォルトの名無しさん
2008/12/06(土) 23:21:36スレでも見たような気がするが、実際何がどう問題なのかわからん。
すくなくとも、exe本体が存在するProgram Files下のアプリケーション
フォルダ内にiniファイルを作成して読み書きは問題なく動作している
けどな。
Administrator権限以外じゃダメとかなら、Vistaに限らず2000やXP等でも
問題になりそうな気がするし、セキュリティ上、別のログインユーザーに
iniファイル内容を見られると困るというなら、All Usersに置いても同じ
だと思う。
0251デフォルトの名無しさん
2008/12/06(土) 23:40:23別のログインユーザから見られないから困るんでしょ。
Program FilesやHKLMに無駄に書き込むソフトなんざそもそもマルチユーザを前提としていないので
これらの挙動はソフトとしては想定外なわけで。
あと、管理者権限を持つプロセスから呼ばれると仮想ストアじゃないとこから設定ファイル読みに行ってNotFoundとか。
なんにせよUAC程度で不具合出るようなソフトは単純に行儀悪いだけだと思う。
0252デフォルトの名無しさん
2008/12/07(日) 00:27:46そうそ
Program Filesにおいちゃうとアドミニ権限ないと
書き込めないし見れないんだよね
なんでアドミニ権限ないユーザが起動すると落ちるソフトとか結構あったりする
0253デフォルトの名無しさん
2008/12/07(日) 00:35:26別にユーザー毎の設定で問題ないアプリなら不具合にならないわけだし
結局の所はケースバイケースって事でしょ
ゲームアプリのセーブデータなんかはプログラムフォルダ内に入れとかないと
セーブデータ残したままアンインストールする場合、普段ユーザーが見ない所に
ファイルが残るしな
「行儀がいい」と「頭が固い」を履き違えてるんじゃね
0254デフォルトの名無しさん
2008/12/07(日) 00:43:20いや、権限によってはProgram Filesを見れないから
アプリの起動自体できない
設定ファイルがないって感じで落ちる
ケースバイケースじゃなくてこう作らないと駄目ってところまできてる
0255デフォルトの名無しさん
2008/12/07(日) 00:48:55なかったらデフォルト値で動かすのが普通。
0256デフォルトの名無しさん
2008/12/07(日) 00:51:59設定ファイルがないと動かないなんて作りになってるのは
ProgramFilesだろうがなんだろうが終わってるだろ
0257デフォルトの名無しさん
2008/12/07(日) 00:59:36仮にProgramFilesが駄目だったら今度どこに保存すんの?
0258デフォルトの名無しさん
2008/12/07(日) 01:06:211.ファイルを読むだけだったらProgram Filesから行われる
2.書き込みが発生した場合、バーチャルストアで行われる
3.一度書き込みが発生したファイルは、バーチャルストアで読み書きが行われる
Program Filesから読めないとか、どこに保存するとか言ってる人がいるから混乱してきたが。
この認識が違うなら>>254に詳しい説明をしてほしい
0259デフォルトの名無しさん
2008/12/07(日) 01:11:29そんなのセキュリティのポリシーの設定で変わるじゃん
駄目にしてある会社だったら読み取りも駄目だろ
0260デフォルトの名無しさん
2008/12/07(日) 01:15:46インストールの設定も含めて
0261デフォルトの名無しさん
2008/12/07(日) 01:29:36INIファイルどころかあらゆるセーブデータの読み書きができなくなるわけだから
INIファイルをどうしようが結局同じことだと思うけど
まあどうしても全てのユーザーで動作させたいんだったら全セーブデータを
>>244のようにするか、レジストリに全てぶっこむしかないだろうね
アホ臭いとしか言いようがないが
0262デフォルトの名無しさん
2008/12/07(日) 01:45:39まあ、業務でそういうところに当たらないとも限らないからちょっとメモっておこ
担当者がキチだと普通にこういうの要求されるよね
0263デフォルトの名無しさん
2008/12/07(日) 03:54:39ファイルが読めないなら起動に必要なデータファイルはどこから読むんです?
0264234
2008/12/07(日) 04:26:59>>236さん
遅くなりましたが、回答ありがとうございます。
そうですか。UNICODEはINIファイルとして使えないのですね。
勉強になりました。
0265デフォルトの名無しさん
2008/12/07(日) 12:46:443.が違う
0266デフォルトの名無しさん
2008/12/07(日) 16:07:48どう違うの?
0267デフォルトの名無しさん
2008/12/07(日) 20:53:500268デフォルトの名無しさん
2008/12/08(月) 01:31:32こんなんでオブジェクト施行とか騒いじゃってるの?拍子抜けなんだけど
0269デフォルトの名無しさん
2008/12/08(月) 01:38:10オブジェクト指向に関係あるものないもの、CになくてC++にある機能なんていくらでもあるが。
0270デフォルトの名無しさん
2008/12/08(月) 01:49:560271デフォルトの名無しさん
2008/12/08(月) 02:18:40それのおかげでインテリセンスの恩恵があるんだろうが!
0272デフォルトの名無しさん
2008/12/09(火) 00:47:26コードが見やすいこと、これに尽きるだろ
C++に慣れるとCのでっかいコードは耐えられん
クラス化したくてウズウズしてくる
変数途中で宣言したくなる
0273デフォルトの名無しさん
2008/12/09(火) 00:51:53それとも最初からC++から勉強しても問題ない?
0274デフォルトの名無しさん
2008/12/09(火) 00:57:11バーチャルストアに書き込むのはマニフェストがない場合だけだよ。
マニフェストがあればあとは管理者権限への移行が成功すれば直接書くことになる。
0275デフォルトの名無しさん
2008/12/09(火) 01:19:02いきなりC++でいいと思う。
共通する事柄はいずれにせよ学ぶことになるし、
Cで良く使うテクだけどC++ではあまり使わないのとか意外とあるし。
0276デフォルトの名無しさん
2008/12/09(火) 01:24:14把握したありがっとう
0277デフォルトの名無しさん
2008/12/09(火) 03:21:41つかそれって結局管理者権限で実行するってことじゃねーの?
他のシステムファイルからみとかで管理者権限が必要でマニフェストに組み込まれた
アプリじゃなければ>>258のようになるってことっしょ?
0278デフォルトの名無しさん
2008/12/09(火) 10:30:08マニフェストがない場合、管理者権限でもバーチャルストア行き。
0279デフォルトの名無しさん
2008/12/09(火) 10:52:590280デフォルトの名無しさん
2008/12/09(火) 12:44:06人によって言ってる事が違うというか。
管理者、制限ユーザー、マニフェスト関連で正確な挙動に
ついての詳細情報が掲載されてるサイトないですか?
VistaだけでなくXPや2000での情報も欲しいです。
0281デフォルトの名無しさん
2008/12/09(火) 14:48:03一次情報源としてMSDNライブラリなど
例えばここらへん。
http://msdn.microsoft.com/en-us/library/bb756883.aspx
http://msdn.microsoft.com/en-us/library/bb756973.aspx
http://msdn.microsoft.com/en-us/library/bb756996.aspx
http://technet.microsoft.com/en-us/windows/aa905113.aspx
0282デフォルトの名無しさん
2008/12/09(火) 15:11:060283デフォルトの名無しさん
2008/12/09(火) 15:16:27日本と米で仕様が違うのもよくある事だしな
0284デフォルトの名無しさん
2008/12/09(火) 15:26:180285デフォルトの名無しさん
2008/12/09(火) 21:38:14初心者なんだから分からんだろ。
0286デフォルトの名無しさん
2008/12/09(火) 21:50:21革新的な質問であったことは確定的に明らか。
0287デフォルトの名無しさん
2008/12/09(火) 22:55:050288デフォルトの名無しさん
2008/12/09(火) 23:24:08細かい設定はないんだよな
プロフェッショナルの管理者による厳しいセキュリティ設定まで考慮してもきりがないと思う
どうやっても管理者次第で動かない設定にできるんだし
XPホームエディションでProgramFilesに入れたアプリを制限ユーザーで動かしてみたけど
普通にINIファイルを含むセーブデータを読み書きできた
Vistaでマニュフェストの指定なしだとこの読み書きがバーチャルストアになるってことか
それを想定して動くつくりであればセーブデータもプログラムと同じフォルダでいいんじゃね
0289デフォルトの名無しさん
2008/12/10(水) 01:08:56多分将来的にはユーザーのデフォの権限を制限ユーザーにしたいんだろうが、
それVistaでやっちゃうとProgram Filesに書き込むアプリなだけで動かなくなるわけだし。
マニフェスト無しでほっとくのも止めやしないが、管理者権限のコマンドプロンプトやファイラから
起動したら別々の設定ファイルをうっかり作っちまうとかも起こりうるので、
requireAdministratorで起動毎にUACダイアログを出した方がいい。
そしてアプリのユーザーにダイアログをうざがられてAppDataに
書き込まざるを得なくなるというプレッシャーこそがUACの真意だとかなんとか。
0290デフォルトの名無しさん
2008/12/10(水) 02:03:250291デフォルトの名無しさん
2008/12/10(水) 11:56:44C++のソースファイルはUTF-8で書かれていて、VS 2003では概ね問題なくコンパイルできていました。
ところがVS 2008のcl.exeは、このソース内に定数として書かれた文字列を勝手にSJISに変換して内部処理するようです。これでは正常動作できません。
この余計な機能を、何とか避ける方法はないのでしょうか?
膨大な量があるので、今さらファイルをSJISに戻すとかすることは不可能なんです。
0292デフォルトの名無しさん
2008/12/10(水) 12:03:530293デフォルトの名無しさん
2008/12/10(水) 12:10:240294デフォルトの名無しさん
2008/12/10(水) 12:15:05if(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をつけるとデータが違うものになってしまうのでしょうか?
0295デフォルトの名無しさん
2008/12/10(水) 12:16:52つーか、UTF-8でダメな例が思いつかないな、再現可能なソース無いですか?
0296デフォルトの名無しさん
2008/12/10(水) 12:18:44文字列の比較に直接 == は使えません。
0297デフォルトの名無しさん
2008/12/10(水) 12:29:10コンパイルエラーなのか動作が変なのか
エラーメッセージがあればそれを書いてもらうと何かわかるかもしれません
>>294
argvの型はTCHARですか
0298デフォルトの名無しさん
2008/12/10(水) 12:39:28VSつながりでVBかC#あたりか
0299デフォルトの名無しさん
2008/12/10(水) 12:40:19void Qux( const Quux<Foo,Bar> & foobar ) {...};
};
class Bar { なんたら }; // (1)
VC2008で上のをもう少し複雑に書くと Baz::Qux での引数の型 Quux<Foo,Bar> が
(1) の Bar と解釈されてコンパイルエラーになってしまう
GCCだと通るんだけどなあ
0300デフォルトの名無しさん
2008/12/10(水) 12:40:36この書き方はPerlかPHPだろう
0301デフォルトの名無しさん
2008/12/10(水) 12:52:34>>296
やっぱりstrcmpを使わないとだめですか?
>>297
int _tmain(int argc, _TCHAR* argv[])
こう宣言してます
0302デフォルトの名無しさん
2008/12/10(水) 12:53:27>>296
やっぱりstrcmpを使わないとだめですか?
>>297
int _tmain(int argc, _TCHAR* argv[])
こう宣言してます
0303デフォルトの名無しさん
2008/12/10(水) 12:57:44はい。
0304デフォルトの名無しさん
2008/12/10(水) 12:59:15では
0305デフォルトの名無しさん
2008/12/10(水) 13:00:32では
0306デフォルトの名無しさん
2008/12/10(水) 13:01:43では
0307デフォルトの名無しさん
2008/12/10(水) 13:03:35エラー 1 error C2664: 'wcscmp' : 2 番目の引数を 'const char [3]' から 'const wchar_t *' に変換できません。(新しい機能 ; ヘルプを参照)
というようなことを言われました。
どうもこの変換できないというところが理解できないです。代入しているわけでもないのに何故?って感じです。
0308デフォルトの名無しさん
2008/12/10(水) 13:04:55#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;
}
これが全文です。
0309デフォルトの名無しさん
2008/12/10(水) 13:14:00文字セットがユニコードの場合 _tsccmp は _wcscmp にマップされる
_wcscmp が要求する型は const wchar_t * だからエラーになる
_T マクロは文字セットにあわせてユニコードの場合には "-o" を L"-o" と変える
L"-o" はワイド文字 wchar_t で構成されるリテラルだから通る
すまん思いきり間違えた 304は俺
0310デフォルトの名無しさん
2008/12/10(水) 13:18:330311デフォルトの名無しさん
2008/12/10(水) 13:21:00解決しました!ありがとうございます
0312デフォルトの名無しさん
2008/12/10(水) 13:47:31再現可能なソースを作っていて気がつきました。
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;
}
一応解決したことにします。ありがとうございました。
0313デフォルトの名無しさん
2008/12/10(水) 15:35:09同じソースで _tcscat(argv[2],L".txt"); という処理を入れ、作成ファイルをテキスト形式にしようと思ったのですが
出力されたファイルが、テキストではなくファイルで出力されてしまいます。
画面表示させるとちゃんと****.txt となっているのですが・・・
0314デフォルトの名無しさん
2008/12/10(水) 15:49:13アホくさい間違いでしたので(汗
0315デフォルトの名無しさん
2008/12/10(水) 22:29:54下記画像のようにスペース部分に色つき矢印やらドットやらが表示されて消えなくなってしまいました。
どこかでキーボード押し違えたみたいで・・
この設定の解除の仕方を分かる方いたら教えてください><
↓
http://imepita.jp/20081210/770880
0316デフォルトの名無しさん
2008/12/10(水) 22:38:270317552
2008/12/10(水) 23:45:14教えていただけませんか?
0318552
2008/12/11(木) 00:19:36なんか、プログラマーって陰湿な性格の人が多いよね。
解るんなら教えてくれればいいじゃん。初心者用のスレだった気がするけど。
ついでに、編集→詳細→スペースの表示で自己解決しました。
だれも教えてくれんかった。
0319デフォルトの名無しさん
2008/12/11(木) 00:47:38よろしければ教えてください。
バージョンはVC++2005 AEです。
0320319
2008/12/11(木) 00:53:28よろしくお願いします。
0321デフォルトの名無しさん
2008/12/11(木) 02:15:04君が質問したのは3、4時間前だろ?
誰もが同じスレをずっと監視してサポートセンターのように対応してくれるとでも思ってんのか?
自分で解決したならそれでいいし、自分で色々やってもできなかったらまた質問すりゃいいだろ
陰湿なのはちょっとレスがない程度でふてくされる君の思考回路だよ
0322デフォルトの名無しさん
2008/12/11(木) 02:29:37オマエみたいなパーデンネンを弾くために、みな時間置いてから答えるようにしてるからね。
ゴクローサン。
0323デフォルトの名無しさん
2008/12/11(木) 07:33:14[編集]→[詳細]→[スペースの表示]
0324デフォルトの名無しさん
2008/12/11(木) 09:53:49つーかその質問、定期的に出るんでうんざりなんだけど。
過去レス調べることもできないのかよ。
あと質問なんか1日くらい待てや、答える人が24時間張り付いてるわけじゃないぞ。
0325デフォルトの名無しさん
2008/12/11(木) 10:10:52ウィンドウを振動させるやり方がわかりません。。
何かコマンドややり方があるのならアドバイスください。よろしくお願いします。
※JAVASCRIPTでウィンドウを振動させるみたいな感じです。
0326デフォルトの名無しさん
2008/12/11(木) 10:18:59SetWindowPos APIとrand関数を使え
0327デフォルトの名無しさん
2008/12/11(木) 10:28:02http://pc11.2ch.net/test/read.cgi/software/1218808744/331
331 名前:名無しさん@お腹いっぱい。[] 投稿日:2008/12/11(木) 09:50:07 ID:mvBU1EDM0
こんにちわ。
アクティブウィンドウを振動させるようなフリーソフトってありますか?
OPENGLで実験中にウィンドウを揺らしたいのですが・・・コマンドも分からないし、出来ないので外部のツールで強引にしようかと。。
よろしくお願いします。
0328デフォルトの名無しさん
2008/12/11(木) 10:45:36Ctrl+R、 Ctrl+Wを続けて入力
0329デフォルトの名無しさん
2008/12/11(木) 10:58:16試験勉強みたいに頭の中に全部記憶する必要ない。
というか情報量多すぎるからその都度自分で調べて解決していかないとだめ。
初心者の場合はどうやって調べたらいいかわからないから
調べ方を教えてあげるのが重要。
答えだけ教えたんじゃ、いつまでたっても自分で調べられようにならない。
0330M
2008/12/11(木) 11:35:21方法があれば教えてください。お願いします。
0331デフォルトの名無しさん
2008/12/11(木) 11:42:17ここなんかどうだろ?
http://www.ee.fukui-nct.ac.jp/~yoneda/text/other/C/A_06.htm
0332デフォルトの名無しさん
2008/12/11(木) 11:43:592つともよく分からないまま検索したらMOVEWinfowというのもあるみたいで、if関数を用いて頻繁に座標をずらし振動させることにしました。
こんなんでいいのかな??
マルチすいません。ありがとうございます。
0333M
2008/12/11(木) 11:48:46ありがとうございます。
このプログラムをMFCのプログラムにどのように組み込めばいいのでしょうか?
あほな質問ですみません。。
0334デフォルトの名無しさん
2008/12/11(木) 12:55:47WM_COMMANDメッセージでコマンドを受け取ったら、main関数の中身を実行すれば?
0335デフォルトの名無しさん
2008/12/11(木) 14:11:02やってる内容が理解できれば使えるだろ
0336M
2008/12/11(木) 14:27:45それでやってみようと思います。ありがとうございました。
0337デフォルトの名無しさん
2008/12/11(木) 16:38:53LogItemという独自クラスを作り、
LogItem item;
ListBox.add(item);
といったことしてます(単なるリストボックスへの追記)。
表示を変更する際に、
ListBox.add(〜.format("{1}・・・",item.name,・・・))
等とすると、今度は削除時にいろいろ面倒です。
表示を適切に変更できるものの、削除時は、
ListBox.remove(item)でいけるような
(追記時の表示に依存しないような)
簡単な方法はご存じありませんか?
参考になりそうなサイトやキーワードを
教えていただければ幸いです。
0338デフォルトの名無しさん
2008/12/11(木) 16:41:26サーボモータは Futaba S3002 を使用
・計7個のサーボモータ使用
・ボタンを押して入力したものをサーボモータに出力〔右に90度⇒左に90度〕
光電センサーは鏡とセンサーの間を通過するのを検出するもので omron E3R-R2E4 を使用
・コインを検出してカウントする
・6個使用
ディスプレイは数字と文字の両方を表示したいです
まとめると、コインを光電センサで検出してその検出したコインをディスプレイに表示する。たまボタンを押すとサーボモータが回転
するものを作りたいです。
この動作をBASICのブログラムで制御させるには、どのようなプログラムにすればいいですか
0339デフォルトの名無しさん
2008/12/11(木) 16:43:58ここはBASICのスレでもPICのスレでもない。
0340デフォルトの名無しさん
2008/12/11(木) 19:13:55自己解決しました。単なる調査不足&ありがちな混乱、でした
※ToStringをオーバーライドすればいいんですね・・・。
ってか。
質問の大半も意味不明でした。正確には「リストボックスにオブジェクトを
そのまま追加した時に、表示のみを変更できるようにしたい。」とすれば
よかったんでしょうね・・。
お騒がせいたしました。ほかに困っている人の助けになれば幸いです^^;
0341デフォルトの名無しさん
2008/12/11(木) 21:14:25Windowsフォームアプリケーションプロジェクトを作成し、
フォームにボタンとpictureBoxを配置しました。
ボタンを押すと、pictureBoxのプロパティで設定した画像の画素値を取得したり
描きこんだりしたいと思い、画像にアクセスする手段を模索することにしました。
どうもpictureBoxクラスから直接画像にアクセスすることはできず、
いったんBitmapクラスに移さないといけないことが分かりました。
これでSetPixel関数を使って、画素値を書き換えることができるようになったのですが、
これをまたpictureBoxに戻して表示することができません。
コードは以下の通りです。(ボタンを押したときの処理関数)
Bitmap bmp = pictureBox1->Image;
bmp.SetPixel( 10, 10, Color::Red );
pictureBox1->Image = bmp; ← これで型が合わないというようなエラーが出る
どのようにすればpictureBoxの画像を加工し、それを表示することができるのでしょうか?
0342デフォルトの名無しさん
2008/12/12(金) 16:23:460343デフォルトの名無しさん
2008/12/12(金) 17:44:23int iAnswer = 0;
int i = 0;
char ChAnswer[256];
ChAnswer = (char)i;
とやっているのですが、変換できないといわれます。
0344デフォルトの名無しさん
2008/12/12(金) 17:46:280345デフォルトの名無しさん
2008/12/12(金) 17:51:27それだと、例えば123を変換した場合、1だけ変換ということになりそうな気がするのですが・・・違いますか?
0346デフォルトの名無しさん
2008/12/12(金) 18:00:16何でそう思うのか、、もっと基礎からやり直すか
具体的にやりたいこと書いて手取り足取り教わるしかないと思うよ。
0347デフォルトの名無しさん
2008/12/12(金) 18:02:26すいません。よく考えてたら頭の中にあったものが2次元配列でした・・・それにしても変な考えですけど。
逝ってきます。
0348デフォルトの名無しさん
2008/12/13(土) 00:30:180349341
2008/12/13(土) 07:31:03それでできました!
ありがとうございました!!
しかし、.NET環境でもWin32apiレベルのビットマップハンドルを意識した記述をしないと
いけないのはどうなのかと思いました・・・
C++ Builderはもっとシンプルになりますし・・・
0350デフォルトの名無しさん
2008/12/13(土) 09:01:26たぶんこうすればいける。
Bitmap^ bmp = gcnew Bitmap(pictureBox1->Image);
bmp->SetPixel(10, 10, Color::Red);
pictureBox1->Image = bmp;
Imageプロパティの型はImageへのハンドル。
にもかかわらず、341ではコード上Bitmapそのものを渡すようになっている。
本来、BitmapはImageの派生なので、Bitmapのハンドルなら渡せるというわけ。
0352デフォルトの名無しさん
2008/12/14(日) 03:25:51やり方を教えてください。
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd)
{
return 0;
}
0353デフォルトの名無しさん
2008/12/14(日) 03:28:021>.\a4.cpp(4) : error C2146: 構文エラー : ';' が、識別子 'WinMain' の前に必要です。
1>.\a4.cpp(4) : error C2065: 'HINSTANCE' : 定義されていない識別子です。
1>.\a4.cpp(4) : error C2146: 構文エラー : ')' が、識別子 'hInst' の前に必要です。
1>.\a4.cpp(4) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>.\a4.cpp(4) : error C2059: 構文エラー : ')'
1>.\a4.cpp(5) : error C2143: 構文エラー : ';' が '{' の前にありません。
1>.\a4.cpp(5) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
0354デフォルトの名無しさん
2008/12/14(日) 03:36:58WINAPIが定義されてないっぽい感じのエラーメッセージだけど、
windows.hはインクルードされてるしなぁ。
0355デフォルトの名無しさん
2008/12/14(日) 03:49:57普通にコンパイル通ったよ
プロジェクトの作成の仕方じゃないの?
ファイル→新規作成→プロジェクトの種類→Win32→Win32プロジェクト
0356デフォルトの名無しさん
2008/12/14(日) 12:25:43▲ InteliSenseデータベースファイル C\......\Visual Studio\Projects|\ソリューションフォルダ\ソリューション.ncb を書き込み用に開けなかったため、
InteliSense 情報は VC++プロジェクトにりようできません。
ソリューションディレクトリが読み取り専用である場合、他の機能にも影響を及ぼします。
ってダイアログ出て、関数の引数とかが表示されなくなってしまいました。
フォルダの属性変えてみようとしたんだけど読み取り属性外せなくなったんですが、対処方ありますか?
他のソリューションでは問題ありません。ファイル壊れた?
0357デフォルトの名無しさん
2008/12/14(日) 17:24:460358デフォルトの名無しさん
2008/12/14(日) 18:02:510359デフォルトの名無しさん
2008/12/15(月) 09:28:10DefStaticProcA = (WNDPROC)GetWindowLong(hBTNa, GWL_WNDPROC);
SetWindowLong(hBTNa, GWL_WNDPROC, (LONG)TestProc);
DefStaticProcB = (WNDPROC)GetWindowLong(hBTNb, GWL_WNDPROC);
SetWindowLong(hBTNb, GWL_WNDPROC, (LONG)TestProc);
if(DefStaticProcA == DefStaticProcB)
MessageBox(NULL, _T("同じ"), _T("button"), MB_OK);
ボタンのプロシージャはみんな同じアドレスに成るのでしょうか?
プロシージャを一つにまとめたいです。
0360デフォルトの名無しさん
2008/12/15(月) 10:48:05WNDPROC DefStaticProcBTN[1000];
void MakeButtonV6(HWND hWnd){
int i;
for(i = 0; i < 1000; i++){
HBTNv6[i] = CreateWindow(_T("BUTTON"), _T("A"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 30, 30, 20, 20, hWnd, NULL, hInst, NULL);
if(HBTNv6[i] == INVALID_HANDLE_VALUE){
MessageBox(NULL, _T("Error"), _T("CreateWindow"), MB_OK);
break;
}
DefStaticProcBTN[i] = (WNDPROC)GetWindowLong(HBTNv6[i], GWL_WNDPROC);
if(DefStaticProcBTN[i] == 0){
MessageBox(NULL, _T("Error"), _T("GetWindowLong"), MB_OK);
break;
}
if(i > 0){
if(DefStaticProcBTN[i] != DefStaticProcBTN[i -1]){
MessageBox(NULL, _T("違う"), _T("ぼ"), MB_OK);
break;
}
}
}
MessageBox(NULL, _T("終了"), _T("m"), MB_OK);
}
保障されているのかな〜。誰か教えて。
0361デフォルトの名無しさん
2008/12/15(月) 10:52:55登録したウィンドウクラスにプロシージャも入ってるだろう。
でも同じプロセス内で差し替えできるから作った時期で違うようにはできる。
0362360
2008/12/15(月) 11:38:130363デフォルトの名無しさん
2008/12/15(月) 17:35:59さらに別のだれかがサブクラス化しているなどといったこともあるから、
一般に同じと仮定することは危険。
ウィンドウハンドルと元のウィンドウプロシージャのどれとどれが対応するのか
分かるように保存しておけば、それぞれのアドレスが異なっていても
同じウィンドウプロシージャでサブクラス化できるはずだ。
0364デフォルトの名無しさん
2008/12/15(月) 22:35:59後からそれを1行ずつ抽出してその項目を使って別の処理をするように今あるプログラムを書き換えたい。
VC++2005、WindowsXPで作業してます。
かなりの初心者ですがどうぞよろしくお願いします。
0365デフォルトの名無しさん
2008/12/15(月) 22:41:01そうでないなら、どこは分かるけどどこが分からないというのをもっとはっきりさせてください。
0366デフォルトの名無しさん
2008/12/15(月) 22:53:16CArrayとか使ってみたんだけど、なかなかうまくいかず・・・
あと、内部テーブルを1行ずつ読み込んでループさせる方法がよくわからん。
レベル低い質問で申し訳ないです
0367デフォルトの名無しさん
2008/12/16(火) 00:18:30INT CLogFileConditions::LoadAllSearchInfo()
{
CCSVFile file;
CFileException fError;
CString sSearchListFile;
m_iResID = 0;
m_iConditionStatus = 0;
sSearchListFile = g_CurrentDir;
sSearchListFile += LOG_SEARCH_LIST_FILE;
if( file.Open( sSearchListFile, CFile::modeRead, &fError) )
{
CString strLogKind, strServerName, intSearchLength, sVal ;
m_LogKindToPath.RemoveAll();
while( file.ReadString() )
{
if( file.GetFieldCount()>=3 )
{
strLogKind = file.GetField(0);
strServerName = file.GetField(1);
intSearchLength = file.GetField(2);
}
0368つづき
2008/12/16(火) 00:20:27file.Close();
if( !m_LogSearchCondition.GetCount() )
{
m_iResID = IDS_ERR401;
m_iConditionStatus = 401;//ErrorIDNumber
}
}
else {
m_iConditionStatus = -1;
MsgBoxBySystemErrID( m_hwndParent,
fError.m_lOsError,fError.m_strFileName );
}
return m_iConditionStatus;
}
みたいな感じで処理条件を読み込む処理をまず作りたい。
ひとつめのレスの最後の方の処理をCSVを読み込む二次元配列にしたいんだ。
どうぞお力をお貸しください。。
0369デフォルトの名無しさん
2008/12/16(火) 00:38:080370デフォルトの名無しさん
2008/12/16(火) 00:46:41でもほんと全然わかんないんだw
もうちょっと詳しく書いてくれると助かります。
ごめんな
0371デフォルトの名無しさん
2008/12/16(火) 00:53:34まずどこに入れたいのか、入れ物を定義しなさいよ。
0372デフォルトの名無しさん
2008/12/16(火) 01:04:47まあ定義もよくわかんないんだけどw
ネットで見ようみまねで
public:
CArray<double, double> GetLogSearchCondition(){ return &m_LogSearchCondition; }
CDoubleArray& operator=( CDoubleArray& src )
{
for( int n = 0; n < src.GetSize(); n++ ) {
this->Add( src[n] );
}
return *this;
}
};
こんなん書いたらエラーが270個くらい出ました。。
0373デフォルトの名無しさん
2008/12/16(火) 01:14:20とりあえずその3つが入るクラスを定義して、それの配列なりArrayなりつくって入れてけばいい。
長さわからんなら、数える手段を考えるか随時伸びるようにすればいい。
0374デフォルトの名無しさん
2008/12/16(火) 01:19:27ほんとすいません。。
0375デフォルトの名無しさん
2008/12/16(火) 01:30:52public:
void SetLogKindForSearch( CString sLogKindForSearch );
void SetServerNamesForSearch( CString sServerNamesForSearch );
int SetSerachLength( INT sSearchLength );
だが、配列にしていく方法はさっぱりだぜ・・・
0376デフォルトの名無しさん
2008/12/16(火) 02:56:10だかフィールド3つで下に続いていくようにする方法がわからぬ・・・
0377デフォルトの名無しさん
2008/12/16(火) 04:03:43意味が全くわからん・・・
誰も起きてないかこんな時間・・・
0378デフォルトの名無しさん
2008/12/16(火) 05:59:41まず入門書を一通り読め。
0379デフォルトの名無しさん
2008/12/16(火) 07:01:340380デフォルトの名無しさん
2008/12/16(火) 08:54:27�d。
ボタンのプロシージャはどれでも良いからボタンに返せばいいんですね。
0381デフォルトの名無しさん
2008/12/16(火) 11:50:08みんな冷たいよな。
まずはここを見て書き方を勉強する。
http://2hyo.com/
0382デフォルトの名無しさん
2008/12/16(火) 14:18:460383デフォルトの名無しさん
2008/12/16(火) 15:04:12マウスのクリックで範囲のポジションを取得して選択範囲は取得できたのですが、
反転をどうやればいいのかがわかりません。アドバイスお願いします。
0384デフォルトの名無しさん
2008/12/16(火) 15:05:18出してくるコードが頓珍漢すぎてどこから説明したもんかわからんのだよ。
自分で理解してる範囲で書いてくれればいいんだが、適当にあちこちから断片集めてみました
というコードじゃ直しようもない・・・
仕様書いて0から起こしたほうがまだましだな・・
0385デフォルトの名無しさん
2008/12/16(火) 15:08:07反転する前の表示はどうやってんのさ。
TextColorとBackColor入れ替えて書いてみるとか、
システムの標準の色から持ってきてそれで書いてみるとか。
0386デフォルトの名無しさん
2008/12/16(火) 15:16:20元描画がいじれないとして、上から被せるような、CWndまでおおげさじゃなくてもいいんですが、
レイヤー的なもので半透明領域をかぶせられる関数は用意されていないでしょうか?
0387デフォルトの名無しさん
2008/12/16(火) 15:27:11そんなのないと思うけど、、、再描画とかどうすんのさ。
いんちきだが、PatBlt()でDSTINVERTで反転とかどうよ。
0388デフォルトの名無しさん
2008/12/16(火) 16:48:52元をハッキングする方向にきりかえようとおもいます。ありがとうございました。
0389デフォルトの名無しさん
2008/12/16(火) 17:51:24どうしたらいいのでしょう?
0390デフォルトの名無しさん
2008/12/16(火) 17:55:03ostringstreamか何かでstringにしてc_str()で取り出すとか、
あるいはsprintfなど。
0391デフォルトの名無しさん
2008/12/16(火) 18:03:230392デフォルトの名無しさん
2008/12/16(火) 20:00:10サンプルがほぼMFCなので無駄な買い物をしてしまった…と見ていいのでしょうか?
他に手があるのでしょうか?
0393デフォルトの名無しさん
2008/12/16(火) 20:43:46仲間だからわかる・・・
0394デフォルトの名無しさん
2008/12/16(火) 20:47:06VisualStudioの基本的な操作を覚えるには役に立ちますよね?
お互いがんばりましょう。
0395デフォルトの名無しさん
2008/12/16(火) 21:29:59MFCが使えるようになってからも役に立たない本でした。
林晴比古のC++シニア上下は、ぼろぼろになった今でも時々読みます。
http://www.kumei.ne.jp/c_lang/
自分はMFCからなのですが、ここのWinAPIの最初の方だけ読んで一日でMFC使わないソフトも作れました。
0396デフォルトの名無しさん
2008/12/16(火) 21:45:260397デフォルトの名無しさん
2008/12/16(火) 21:56:27そちらを買うか林氏の本を買うかで悩んでたんです。そちらのほうがよかったのですね!
>>396
.netのサンプルとは例えばどのようなものでしょう?
0398デフォルトの名無しさん
2008/12/16(火) 22:22:290399デフォルトの名無しさん
2008/12/16(火) 22:31:09そう言ってもらえると助かります!
みっちり操作を体に叩き込みたいと思います!
0400デフォルトの名無しさん
2008/12/16(火) 23:27:36無償版では使えないらしいので購入しようと思います
MFCを使えるバージョンと購入方法と価格を教えてください
0401M
2008/12/16(火) 23:30:1411111111
11111
1111111111
1111111
11111111
1 1 2222
2222
222222
0402デフォルトの名無しさん
2008/12/16(火) 23:33:060403デフォルトの名無しさん
2008/12/16(火) 23:46:58http://kakaku.com/item/37600110112/
0404デフォルトの名無しさん
2008/12/17(水) 09:30:250405デフォルトの名無しさん
2008/12/17(水) 19:36:510406デフォルトの名無しさん
2008/12/17(水) 20:03:15>>403さん
スタンダードバージョンでMFC使えるんですね
アマゾンで28000円かぁ
少々きつい出費になりますが
どうしても作ってみたいものがあるので思い切って購入しようと思います
詳しくありがとうございました
ヤマダ電機では売っていないのかなあ?
ヤマダポイント約6000円持ってるんだよね^^;
教えてくれてありがとうでした
0407デフォルトの名無しさん
2008/12/17(水) 20:09:15Windows SDKを最新のものにしようと思い、2005使っているとき以来のPSDKを削除、
ついでにVC++2008も一旦削除して、さてインストールし直すぞ、と意気込んでいるのですが、
VC++2008をインストールすると、Microsoft Windows SDK for Visual Studio 2008とやらが自動でインストールされるそうで。
この場合、一旦これをアンインストールしてからMicrosoft Windows SDK for Windows Server 2008をインストール、でOK?
0408デフォルトの名無しさん
2008/12/17(水) 21:01:49Win32コンソールアプリケーション
ビルドの失敗
ソース↓
// test_1.cpp
#include "stdafx.h"
#include "test_2.cpp"
class test_A{
static const int INT_A;
static const char *TEXT_A;
};
const int test_A::INT_A=1234;
const char *test_A::TEXT_A="abcd";
int _tmain(int argc, _TCHAR* argv[]){
return 0;
}
// test_2.cpp
#include "stdafx.h"
class test_B{
static const int INT_B;
static const char *TEXT_B;
};
const int test_B::INT_B=1234;
const char *test_B::TEXT_B="abcd";
0409デフォルトの名無しさん
2008/12/17(水) 21:03:02ビルトをするとtest_Aは成功、test_Bは失敗します。ただし、一回目のビルドで
両方とも成功しているのに、その後同じ内容で二回目のビルドを行うと
やはりtest_Bだけ失敗するようになる、という場合もあります。
↓ ↓ ↓
fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
どこが原因なのか分かりません。
0410デフォルトの名無しさん
2008/12/17(水) 21:12:24こうして2005Express Editionからアップグレードできることを知らない情弱が
今日も通常版を買っていくのであった・・・
http://www.microsoft.com/japan/msdn/howtobuy/vs2008/upgrade/default.aspx
0411デフォルトの名無しさん
2008/12/17(水) 21:35:52やらなければいけないことが分かりました・・・・・・・・orz
0412デフォルトの名無しさん
2008/12/17(水) 21:42:50// test_1.cpp
#include "test_2.cpp" // ←LINK1169
"test_2.cpp"をプロジェクトから除外するか、上記をコメントアウトすれば解決する。
0413デフォルトの名無しさん
2008/12/17(水) 22:53:48_tmainでtest_Bが使えませんが・・・。
0414デフォルトの名無しさん
2008/12/17(水) 23:12:06test_2.cppをプロジェクトから除外すれば使える。
0415デフォルトの名無しさん
2008/12/17(水) 23:22:12「プロジェクトの外部」って扱いにしてから、呼び出すんですね?
0416デフォルトの名無しさん
2008/12/17(水) 23:33:59そうだよ。どのみち #include "test_2.cpp" してんだから。
もっとも、#include "test_2.cpp"などというよーな書き方のほうを改めるべきだと思うがな。
// test.h
class test_A{
static const int INT_A;
static const char *TEXT_A;
};
class test_B{
static const int INT_B;
static const char *TEXT_B;
};
// test.cpp
#include "stdafx.h"
#include "test.h"
const int test_A::INT_A=1234;
const char *test_A::TEXT_A="abcd";
const int test_B::INT_B=1234;
const char *test_B::TEXT_B="abcd";
int _tmain( ・・・・) {
// To Do
}
0417デフォルトの名無しさん
2008/12/17(水) 23:51:08初歩の初歩でした。
0418デフォルトの名無しさん
2008/12/18(木) 04:18:43あとヘッダに関数の中身定義する奴も同様にキモイ
0419デフォルトの名無しさん
2008/12/18(木) 05:05:35template関数全否定ですね、わかります
0420デフォルトの名無しさん
2008/12/18(木) 09:59:14というわりにはExpression Blend 2のアップグレードが割引率高くて安いうえに
VS2008Stdが入ってるのは教えてあげないのね。
0421デフォルトの名無しさん
2008/12/18(木) 11:45:07i = 0;
for(i = 5; i < 0; i--){
printf("%d",i);
fflush(stdout);
Sleep(1000);
}
この処理を通ってくれません。forの頭までは来ているのですが次の処理でforを抜けてしまっています
0422デフォルトの名無しさん
2008/12/18(木) 11:49:240423デフォルトの名無しさん
2008/12/18(木) 11:52:05i > 0
にしろ
それとi = 0は必要なのかね
0424デフォルトの名無しさん
2008/12/18(木) 11:52:40コンパイラがC++で、書いてるのはCです
0425デフォルトの名無しさん
2008/12/18(木) 11:55:33i = 0 はなんとなく癖です
0426デフォルトの名無しさん
2008/12/18(木) 12:00:53VS2008でC++作ってます。
Irvineとかそういうダウンローダーでよくあるグリッドの入ったリストを作りたいんだけど、そのパーツ?コンポーネント?の名前さえも全くわからず・・・。
ToolBoxでコレだよ、的なもので良いので教えて下さい。
0427デフォルトの名無しさん
2008/12/18(木) 12:28:37Microsoft DataGrid コントロール
ActiveXのやつ
0428デフォルトの名無しさん
2008/12/18(木) 12:31:39LisiViewコントロールじゃだめなんかな?
0429デフォルトの名無しさん
2008/12/18(木) 12:35:230430デフォルトの名無しさん
2008/12/18(木) 12:45:03ありです。ちょっと試してみますー。
0431426
2008/12/18(木) 12:55:29>>429
Excelみたいに各セルが選択できるタイプじゃなくて、選択の対象が行単位で出来るものが良いんですよね。
今ちょうど見たら良い例があったので出してみると、ギコナビの板の中身の表示部分(スレッド一覧)とか。
それにグリッドがついたようなものが欲しいです。
色々と足りてなくて申し訳ない・・・orz
0432デフォルトの名無しさん
2008/12/18(木) 13:01:10文字列をまとめて入れ替えたい場合はどうすればいいんですか?
もしかして全てのloadstringの行でIDSを分岐させてるんですか?
0433あ
2008/12/18(木) 13:12:37IDをずらす
LoadString(hInstance, IDS_MYSTRING + (f ? 10000 : 0), sz, 256);
0434デフォルトの名無しさん
2008/12/18(木) 14:04:50めちゃくちゃloadStringあるんですけど・・・テーブル切り替えでがいいです!!!
0435デフォルトの名無しさん
2008/12/18(木) 14:10:490436デフォルトの名無しさん
2008/12/18(木) 14:15:330437デフォルトの名無しさん
2008/12/18(木) 14:26:360438デフォルトの名無しさん
2008/12/18(木) 14:59:50CCustamCtrlとかないんですが
0439デフォルトの名無しさん
2008/12/18(木) 15:04:26コントロールはCWndから派生
0440デフォルトの名無しさん
2008/12/18(木) 15:19:020441デフォルトの名無しさん
2008/12/18(木) 15:23:54Static
0442デフォルトの名無しさん
2008/12/18(木) 16:11:220443デフォルトの名無しさん
2008/12/18(木) 16:57:44"test"
を選択してマクロ実行すると
_T("test")
になるようにしたいんです。
一度左に行って _T( を挿入するまでは出来るんですが、選択範囲が消えて ) を入れる位置がわからなくなります
0444デフォルトの名無しさん
2008/12/18(木) 17:04:48DTE.ActiveDocument.Selection.Copy()
DTE.ActiveDocument.Selection.Text = "_T()"
DTE.ActiveDocument.Selection.CharLeft()
DTE.ActiveDocument.Selection.Paste()
0445デフォルトの名無しさん
2008/12/18(木) 18:56:57CStaticの派生クラスのOnPaintの中で
void CStaticEX::OnPaint()
{
CPaintDC dc(this); // device context for painting
dc.SetBkColor(RGB(20,30,100));
}
と書いたのですが、背景色が変わりません。これどこがいけないんでしょうか?
0446デフォルトの名無しさん
2008/12/18(木) 19:05:110447デフォルトの名無しさん
2008/12/18(木) 19:54:47やっぱListViewじゃない?
ListView_SetExtendedListViewStyle(hListView, LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
みたいな。
「リストビュー 拡張スタイル」でぐぐってみたら?
0448デフォルトの名無しさん
2008/12/18(木) 20:56:50コンパイルエラーでメンバでは無いといわれるのはなぜですか?
0449デフォルトの名無しさん
2008/12/18(木) 21:04:150450デフォルトの名無しさん
2008/12/18(木) 21:22:040451デフォルトの名無しさん
2008/12/18(木) 22:03:520452デフォルトの名無しさん
2008/12/19(金) 00:26:34PAINTSTRUCT ps;
CDC* pDC = BeginPaint(&ps); にする。
もっとも、そんなことしなくても、スタティックコントロールの背景色の変更は、
親ウィンドウの CWnd::OnCtlColor() で簡単にできるんだが・・・。
0453デフォルトの名無しさん
2008/12/19(金) 00:35:14全くのプログラム初心者に近い人間で、HSPをちょっと触ったことがある程度なんですが
C++を使ってみたいと思いました。
色々なサイトを回ってみたりしたのですが
開発環境の作り方がさっぱりわかりませんでした・・・orz
ttp://codezine.jp/article/detail/207?p=1
このページを参考に物を作りつつ勉強していこうと思ったのですが
最初の一歩目で躓きましたorz
どこか環境の作り方などが載っているサイトなどがあれば教えて頂けないでしょうか。
もし書き込むスレッドが間違っていたら教えて頂きたいです。
宜しくお願いします。
0454デフォルトの名無しさん
2008/12/19(金) 01:30:29という話じゃないとは思うんだが、開発環境って具体的には何を指してるんだ?
0455デフォルトの名無しさん
2008/12/19(金) 02:52:51ありがとうございました。Ctlも調べてみますどうもです
0456デフォルトの名無しさん
2008/12/19(金) 23:29:36エスパー的に答えれば
フリーのVisual C++ 2008 Expressをダウンロードしてインスコ(環境出来上がり)
でもそのレベルじゃ記事読んでも理解できないから
Cはある程度わかっているとして
猫でも読んでWin32APIの基本は少なくとも勉強する
メッセージループ プロシージャなど
ってことでOK?
0457デフォルトの名無しさん
2008/12/19(金) 23:39:56書かれたの、10年以上前だし。
http://www.amazon.co.jp/dp/4891005769
http://www.amazon.co.jp/dp/4891005823
↑このあたりの本でも買って勉強したほうがいいんじゃね?
0458デフォルトの名無しさん
2008/12/19(金) 23:47:01それやるならC#でよいと思うがな
個人的には色々本買うより
初心者であってもCがある程度分かってるなら
Petzold本読むのを進める
0459デフォルトの名無しさん
2008/12/19(金) 23:52:53ああ、本当だ。.NET Frameworkって内容紹介に書いてあるな。
でもHSPをちょっとかじった程度だと、プログラミングWindowsとかムリだろ。
0460デフォルトの名無しさん
2008/12/20(土) 00:39:07c++ です。
フォームアプリケーションでファイルを開いて、フルパスからファイル名を抽出しようとしていて、
ググったところ、char ポインタ型で抽出していたので、System::Stringをcharポインタ型に変換してから抽出したのですが、実際に何度か連続で実行したところ
エラーが発生しました。恐らくポインタの開放か初期化でミスってると思うんですが…
ケータイからなのでソースは勘弁していただきたいので、System::String で直接ファイル名を抽出できないでしょうか?
スレ汚しすいません。
0461デフォルトの名無しさん
2008/12/20(土) 00:41:58VisualStudio2008と書くのを忘れていました
0462デフォルトの名無しさん
2008/12/20(土) 01:19:27System::String は使ったことがないので考え方だけ。以下のコードでできるかどうかは不明。
文字列の最後に出てくる \ の位置を求めて、先頭からその位置までの文字列をばっさり捨ててる・・・つもり。
検証は、まかせる。(笑)
String filename = pathname.Remove( 0, pathname.LastIndexOf('\\')); // pathname は フルパスが入っている String
0463デフォルトの名無しさん
2008/12/20(土) 01:37:27最後の¥が残ってしまったものの抽出自体は成功しています!
後は自力でできそうです!
わずか一行で実装できるとは思いませんでした。
ありがとうございます。
0464デフォルトの名無しさん
2008/12/20(土) 01:39:310465デフォルトの名無しさん
2008/12/20(土) 01:47:13そんな便利な関数あったんですね…
すいません調べ不足でした。
>>463
ちなみに先ほどのは、ラストの¥の位置を表しているのでインクリメントしてあげれば解決しましたね。
お二方ありがとうございました。
0466デフォルトの名無しさん
2008/12/20(土) 02:52:40>後は自力でできそうです!
そりゃできるだろ。^^;
String filename = pathname.Remove( 0, pathname.LastIndexOf('\\') + 1); // + 1 を追加
たったこれだけの修正ができなかったら、C++を勉強する前に
まずはCの基本から身につけたほうがいいと思うぞ。
0467デフォルトの名無しさん
2008/12/20(土) 19:56:30express、Windowsフォームです。
一つのイベントに対して複数のイベントを組むのは、どうすればいいのでしょうか。
具体的にはtoolStripのButtonをクリックした時に、名前をつけて保存と上書き保存と切り替えたいのですが…
0468デフォルトの名無しさん
2008/12/20(土) 23:43:49プログラムはこれです。
#include <iostream>
using namespace std;
int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};
void k(){
if(m[p]==0)for(i=0;i<8;i++){
for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;
if(c&&m[v]==t){
a+=c;v=p;
if(d)do m[v]=t,v+=r[i];while(m[v]!=t);
}}}
char*h="・○●\n" ;
int main(){
for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;
for(;;a=d=0){
for(p=9;p<82;++p)k(),cout<<h[m[p]*2];
if(a)for(d=a=s=p=8;a==8;k())t-2?(cin>>p>>i),(p+=i*9):++p;
else if(s)s=0,cout<<"pass"; else break;t=3-t;
}
return 0;
}
0469デフォルトの名無しさん
2008/12/21(日) 00:40:30[構成プロパティ]-[全般]-[文字セット]がUnicodeがどうのこうのってなってね?
マルチバイトがどうのこうのってのに設定すれば多分動くんじゃね?
0470デフォルトの名無しさん
2008/12/21(日) 14:06:11hToolBar = CreateWindowEx(WS_EX_TOOLWINDOW, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | CCS_ADJUSTABLE | CCS_NORESIZE, 50,200,200,20, hWnd, NULL, hInst, NULL);
ツールバーに背景色を設定したいのですがやり方がわかりません。
教えてください。
0471デフォルトの名無しさん
2008/12/21(日) 19:25:33SetWindowLongPtr
GCLP_ HBRBACKGROUND
0472デフォルトの名無しさん
2008/12/21(日) 19:33:260473デフォルトの名無しさん
2008/12/21(日) 21:07:430474デフォルトの名無しさん
2008/12/21(日) 21:23:560475デフォルトの名無しさん
2008/12/21(日) 21:27:06右にTextBox(MainText)、左にパネル、パネルの上にTextBox(LineText)
LineTextにはMainTextの行数を表示してあります。
こんな風↓
パネル|MainText
1 |文字
2 |文字
3 |文字
でMainTextがスクロールするときには、同時にパネルをスクロールしたほうが、いいでしょうか?
LineTextをスクロールしたほうがいいでしょうか?
また、どうスクロールしたらいいでしょうか?
0476デフォルトの名無しさん
2008/12/21(日) 22:49:13VS2003も?
0478デフォルトの名無しさん
2008/12/22(月) 03:52:50>>454
すみません、言葉が足らなかったようで。
開発支援ソフトというか、ソースを書いて、実行して・・・という動作を行うソフトを探していました。
こういったソフトを何というか、用語等が分からなくて・・・すみません。
>>456
直感で欲しかった返答を頂き、有難うございます。
少しずつ調べていく感じで、時間がかかっても一歩ずつ進んでいこうと思います。
>>457,458,459
参考書を探してみたのですが、書店で見てもイマイチどれがいいのか分からなくて・・・
購入して意味が分からない、というのも問題だと思ったのでいろいろネットを見回っていました。
Petzoldという本がどれかは分からないのですが、また今度探してみようと思います。
皆様、返信ありがとうございました。
試行錯誤で少しずつ勉強してみようと思います。
0479デフォルトの名無しさん
2008/12/22(月) 04:13:52DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | LVS_REPORT;
m_ListCtrl.Create(dwViewStyle, rectDummy, this, ID_FileListCtrl)
m_ListCtrl.InsertColumn(0, _T("NAME"), LVCFMT_LEFT, 100);
m_Images.Create(IDB_NAME, 16, 0, RGB(255, 0, 255));
m_ListCtrl.GetHeaderCtrl()->SetImageList(&m_Images);
ここまで来たんですが、どうしても表示されません、教えてください。
0480デフォルトの名無しさん
2008/12/22(月) 09:51:360481デフォルトの名無しさん
2008/12/22(月) 10:41:23m_ListCtrl.InsertItem(0, _T("TEST"), 2); // BMPの3つ目のイメージを期待
Insertはこうかいてます
0482デフォルトの名無しさん
2008/12/22(月) 10:57:310483デフォルトの名無しさん
2008/12/22(月) 10:58:500484デフォルトの名無しさん
2008/12/22(月) 11:20:43リストコントロールの0列目の頭にアイコンを付けたいんです。
BMPは16で区切って8インデックスあるので
2番目は空では無いとおもうんです
0485デフォルトの名無しさん
2008/12/22(月) 11:30:14アイコンのある筈の場所が空白になるだけだから、それは確認できるはず。
で、
m_ListCtrl.GetHeaderCtrl()->SetImageList(&m_Images);
これは
m_ListCtrl.SetImageList(&m_Images);
じゃないのか?
0486デフォルトの名無しさん
2008/12/22(月) 11:31:41こうか
0487デフォルトの名無しさん
2008/12/22(月) 11:39:19GetHeaderってなんだったんだーーーー
ありがとう。まじありがとう。
無駄に難しくはまり込んでいた・・・
0488デフォルトの名無しさん
2008/12/22(月) 20:19:26ソリューション構成のとこをreleaseにして、できたexeファイルと画像と音声リソースを
同じディレクトリに入れて、USBメモリで他のパソコンに移して実行しても、
アプリケーションの構成が正しくないとかいうエラーが出てしまいます。
どなたかアドバイスお願いします
0489デフォルトの名無しさん
2008/12/22(月) 20:22:150490デフォルトの名無しさん
2008/12/22(月) 20:23:370491デフォルトの名無しさん
2008/12/22(月) 20:26:050492デフォルトの名無しさん
2008/12/22(月) 21:11:11出てきたページを参考にランタイムを入れてみようと思います。
ありがとうございましまろ
0493デフォルトの名無しさん
2008/12/22(月) 22:48:23プログラミングWindows 第5版 (Charles Petzold著)
Win32APIを勉強する上ではバイブル的本だと思うが
君が理解できるかどうかは俺にはわからん
ただ訳もよくできてるから 初心者が読んでても結構楽しいぜ
それなりの値段だから 大きめの本屋で目を通してみると良い
とりあえず上巻だけでOK
0494デフォルトの名無しさん
2008/12/22(月) 23:55:22テキストファイルやmp3等のリソースエディタでは埋め込みが不可能なものを
リソースとして埋め込み、使用するにはどのようにしたらいいのでしょうか
ググった所ビルドアクションを埋め込まれたリソースにするという事はわかったのですが、
追加したファイルのプロパティを確認しても項目がその他しか出ていませんでした
どうかよろしくお願いします
0495デフォルトの名無しさん
2008/12/23(火) 00:01:29Regex::Matchesでパターンマッチした文字の位置を取得して、その列をSelectにすることできる?
ABC
ABC
ABC
↑これでAをMatchesで取得したとして、3つ目のAを指定したら3列目が選択される。みたいに
わかりにくくてごめん。
0496デフォルトの名無しさん
2008/12/23(火) 00:20:34「カスタムリソース」でググってみ。
0497デフォルトの名無しさん
2008/12/23(火) 01:22:00カスタムリソースで調べてやってみたら埋め込みリソースが成功しました
本当にありがとうございます
0498デフォルトの名無しさん
2008/12/23(火) 22:33:03printf()の出力先(標準出力)を、VC++の出力窓にすることはできます?
(OutputDebugString()を使わずに・・・)
0499デフォルトの名無しさん
2008/12/23(火) 23:10:040500デフォルトの名無しさん
2008/12/23(火) 23:12:56標準出力の出力先はSetStdHandle()で切り替えられるけど、VCの出力窓のハンドルって取得できるのかな?
調べたらできるかもしれない。
0501デフォルトの名無しさん
2008/12/23(火) 23:18:420502デフォルトの名無しさん
2008/12/23(火) 23:19:09printfをオーバーライドして中身にOutputDebugString書いちゃ駄目なの?
あくまでOutputDebugStringは使っちゃ駄目?
0503デフォルトの名無しさん
2008/12/23(火) 23:26:20MatchCollectionのメンバで位置取得とかできないの?
0504デフォルトの名無しさん
2008/12/24(水) 03:17:520505デフォルトの名無しさん
2008/12/24(水) 04:24:180506デフォルトの名無しさん
2008/12/25(木) 13:21:28Visual C++ 2005 Expressを使っているのですが、
EXEファイルのプロパティから見られる「バージョン情報」を追加するには
どうすればいいんでしょうか?
0507デフォルトの名無しさん
2008/12/25(木) 14:14:08リソースファイルを作ればいい
http://marigold.sakura.ne.jp/devel/windows/verinfo/index.html
0508デフォルトの名無しさん
2008/12/25(木) 19:49:37ありがとうございます。そちらを参考にして一応設定し、「バージョン情報」タブが
表示されるようになりました。
ですが、何も設定していないのに「言語」という項目が「英語(米国)」という値で
自動的に設定されてしまうのですが、この「言語」の項目を「日本語」にするには
どうすればいいのでしょうか?
ためしに
VALUE "言語", "日本語\0"
と記述すると項目は追加されるのですが、「言語」「英語(米国)」は残ってしまいます…
0509508
2008/12/25(木) 20:01:21関係してたんですね
0510デフォルトの名無しさん
2008/12/26(金) 02:41:53演算を行いたいと思っています。
15 と入力されていれば、1.15で演算
現在、取得した値に100加算し、100除算するようにしているのですが、
桁落ちが発生してしまい、変数に格納される値が1.1499…となってしまいます。
桁落ちを発生させず、正しく1.15として変数を格納するためにはどのようにすればよろしいでしょうか。
CString strBuf;
double d;
((CEdit*)GetDlgItem(iID))->GetWindowText(strBuf); // strBuf="15"
d = atoi(strBuf); // d=15.00000000
d = 100 + d/100; // d=1.149999999
0511デフォルトの名無しさん
2008/12/26(金) 02:56:370512デフォルトの名無しさん
2008/12/26(金) 03:14:09偶数丸めとか四捨五入とか。
0513デフォルトの名無しさん
2008/12/26(金) 06:37:330514デフォルトの名無しさん
2008/12/26(金) 07:10:360515デフォルトの名無しさん
2008/12/26(金) 07:19:300516510
2008/12/26(金) 09:32:30四捨五入で試して見たいと思いますが、
少数で演算はやめておいた方がよさそうですかね。
計算式が少し複雑なものだったので、楽できればと思ったのですが。
ありがとうございました。
0517デフォルトの名無しさん
2008/12/26(金) 11:57:21ただし半角なら1バイト単位で、全角なら2バイト単位で、という風に分離したいです。
半角だけなら、Strcpyでcharの配列にコピーした上で、
str[0] str[1]...という風に取り出せますが、
全角が混じっていると、1バイト目、2バイト目と分離されてしまいます。
その文字が半角か全角かを判断して、半角なら1バイト、全角なら2バイト同時に取り出すロジックを作りたいです。
こんな感じの関数として。
CString ripString(CString src,int index){ //ソースとなる文字列、n文字目
/*〜処理〜*/
return 文字列;
}
たとえば"あaいbうcえdおe"という文字列を入れると、
CString str="あaいbうcえdおe";
ripString(str,0) →結果 "あ"
ripString(str,1) →結果 "a"
ripString(str,2) →結果 "い"
ripString(str,3) →結果 "b"
・
・
・
こういうことをするのに良い方法はありますか?
0518デフォルトの名無しさん
2008/12/26(金) 12:05:490519デフォルトの名無しさん
2008/12/26(金) 12:09:47CString::GetAt( int iChar)
0520デフォルトの名無しさん
2008/12/26(金) 12:18:56#define _UNICODE
0521デフォルトの名無しさん
2008/12/26(金) 19:48:42〜〜.dllってどのようにすれば使えるのか教えてください。
dllファイルの作成自体は成功しています。
0522デフォルトの名無しさん
2008/12/26(金) 20:37:37google dll 作成方法
0523デフォルトの名無しさん
2008/12/26(金) 21:03:56とりあえず自己解決しました。
Project Test ←dllを使うプロジェクト
Project Test_dll ←dllのプロジェクト
という感じで、Test_dll.libができるのかと思ってたら、Test_dll.dllとTest.libの名前でファイルが作成されてました。
はじめにTestのソース内で#pragma comment(lib, "Test.lib")を試したところ
出力ファイル名が入力ファイル名が一致しています。というエラーが出たので、(名前も対応していないので)
Test.libがTest_dll.dllのアタッチとは関係ないものだと早とちりしていました。
結局Test.libをTest_dll.libにリネームして、リンクすることでビルドに成功できました。
0524デフォルトの名無しさん
2008/12/26(金) 21:11:02みなさんは毎回手動でリネームしているのでしょうか。
0525デフォルトの名無しさん
2008/12/26(金) 21:52:49面倒だし
0526デフォルトの名無しさん
2008/12/26(金) 23:24:500527デフォルトの名無しさん
2008/12/28(日) 10:28:010528デフォルトの名無しさん
2008/12/28(日) 20:13:39Win32 VC++です。
モードレスダイアログに
setData(char* text)
{
ComboBox_AddString(hwndDialog, text);
}
親から
dialog.setData(text);
UpdateWindow(hWndDialog);
0529デフォルトの名無しさん
2008/12/28(日) 21:01:370530デフォルトの名無しさん
2008/12/28(日) 22:13:09ComboBox_AddString( GetDlgItem( hWndDialog, IDC_COMBOBOX), text);
0531デフォルトの名無しさん
2008/12/28(日) 23:12:16おっしゃるとおりにやってみたのですが、現象は変わりませんでした。
現象は、モードレスダイアログにあるコンボの中身が空のままです。
ただ、 num = (int)SendMessage(GetDlgItem( hWndDialog, IDC_COMBOBOX), CB_GETCOUNT, 0, 0);
でみると要素数numはちゃんと増えています。
WM_PAINTを拾ってInvalidateRectで再描画する必要があるのでしょうか。
0532デフォルトの名無しさん
2008/12/28(日) 23:29:03ポインタ操作間違えて文字化けしているだけじゃないのか?
0533デフォルトの名無しさん
2008/12/28(日) 23:50:08まず、モードレスダイアログ自身に同じ処理を書くと成功すんのか?それ
0534デフォルトの名無しさん
2008/12/29(月) 02:31:03コンボにフォーカスして↑↓キー入れてみたらちゃんと追加されてるとか
0535デフォルトの名無しさん
2008/12/30(火) 17:54:280536デフォルトの名無しさん
2008/12/30(火) 18:08:080537デフォルトの名無しさん
2008/12/30(火) 18:24:570538デフォルトの名無しさん
2008/12/30(火) 22:10:54実行時にメニューバーの表示/非表示を切り替えたいのですが、
どういった方法がありますでしょうか?
0539デフォルトの名無しさん
2008/12/30(火) 22:18:26EnableWindow( hWndToolBar, ( IsWindowEnabled( hWndToolBar) == FALSE);
0540デフォルトの名無しさん
2008/12/30(火) 22:19:210541デフォルトの名無しさん
2008/12/31(水) 04:46:190542デフォルトの名無しさん
2008/12/31(水) 22:52:19クソだな
根っからのクソ
育ちが悪すぎる
親、何?誰?かなりクソでしょ?
教育失敗してる
0543デフォルトの名無しさん
2008/12/31(水) 23:51:34ペゾルド本もC#だし。
0544デフォルトの名無しさん
2009/01/01(木) 02:50:340545デフォルトの名無しさん
2009/01/01(木) 11:15:150546デフォルトの名無しさん
2009/01/01(木) 13:00:220547デフォルトの名無しさん
2009/01/01(木) 13:14:000548デフォルトの名無しさん
2009/01/01(木) 13:49:40レスありがとうございます。
探して見つかったら報告します。
0549デフォルトの名無しさん
2009/01/01(木) 21:57:36char *textdata;
void main(){
ifstream fin;
fin.open("test.txt",ios::binary);
この後、textdataにtest.txtのデータをコピーしたいのですが
test.txtはeofの後にもデータがあります。
それも含めて、ファイルの最後までデータを読み込みコピーするには
どうすれば良いですか?
0550デフォルトの名無しさん
2009/01/01(木) 22:13:27eofチェックしない処理を自作する。
0551デフォルトの名無しさん
2009/01/01(木) 23:41:290552デフォルトの名無しさん
2009/01/02(金) 07:50:04eofのあとにデータがあるんじゃなくて、eofの判定をミスってるだけだろ。
0553デフォルトの名無しさん
2009/01/02(金) 08:04:37ソースを出してくれ
0554デフォルトの名無しさん
2009/01/02(金) 11:28:48#include <iostream>
using namespace std;
char textdata;
void main(){
ifstream fin;
fin.open("test.txt",ios::binary);
while(!fin.eof()){
fin.get(textdata);
cout << textdata;
}
getchar();
最初から作ったらできてたお
0555デフォルトの名無しさん
2009/01/03(土) 01:38:20プリコンパイル済みヘッダーを使用する設定にして、
ソースにプリコンパイル済みヘッダーを include しないと、
「プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました」
というエラーが出るのですが、
これは全部のソースに、プリコンパイル ヘッダーを include しないといけないのでしょうか?
0556デフォルトの名無しさん
2009/01/03(土) 03:10:17すべての cpp ソースの頭に
#include "stdafx.h"
と書けば解決する。
0557デフォルトの名無しさん
2009/01/03(土) 03:32:560558デフォルトの名無しさん
2009/01/03(土) 10:01:52>>557さん
ありがとうございます。
やはりそうなのですか。
ところで、何で全部のソースに書かないといけないのでしょうか?
自分のイメージでは、プリコンパイルヘッダーって、
ヘッダーファイルをまとめたヘッダーファイルみたいな物と思っています。
別にプリコンパイルヘッダーに登録されているヘッダーファイルが
必要じゃない場合とかも、そのソースに include しないとエラーが出るっていうのが、
いまいち納得できませんでした。
何か自分は考え違いをしているのでしょうか?
0559デフォルトの名無しさん
2009/01/03(土) 10:38:47プリコンパイルヘッダーを使用する/しないは、全体の設定のほかに
個別のソースごとに設定できる。
必要なけりゃそれで除外すればいい。
0560デフォルトの名無しさん
2009/01/03(土) 10:55:22プリコンパイルヘッダはコンパイル前にあらかじめヘッダーをコンパイルして結果を保存し、再利用してコンパイルを高速化するためのもの。
だからプリコンパイルヘッダを使用すると指定したモジュールのヘッダー読み込みの順序が同じでなければならない。そのために各ファイルの先頭でstdafx.hを読み込むようにしている。
0561デフォルトの名無しさん
2009/01/03(土) 20:20:540562デフォルトの名無しさん
2009/01/03(土) 21:23:14この警告をなくす方法を教えてください。もしくは気にしなくても良いのでしょうか?
MSに http://msdn.microsoft.com/ja-jp/library/ywz8xf2a.aspx 悪い例のサンプルがあるんですけど
対応方法が載ってません。
0563デフォルトの名無しさん
2009/01/03(土) 21:59:54警告無視で書き換えるなら、__asmを入るときの値を出るまでに復元しろということ。
0564デフォルトの名無しさん
2009/01/03(土) 23:47:30ReadProcessMemory(ProcessHandle, reinterpret_cast<LPVOID>(ModuleAddress+data.offset.x), &x, 4, NULL);
こう書くとwarning C4312: 'reinterpret_cast' : 'DWORD' からより大きいサイズの 'LPVOID' へ変換します。
とでるのですが、正しい使い方はどうなるんでしょうか?
ModuleAddressとdata.offset.xはどちらもDWORDです。
0565デフォルトの名無しさん
2009/01/04(日) 00:12:20キャスト元をDWORDからULONG_PTRなんかにすればいい。
DWORDはWin64でも32ビットのままだが、ULONG_PTRはポインタと同じく64ビットになるという整数型。
0566デフォルトの名無しさん
2009/01/04(日) 01:17:12ソースAがメインのソースとして
ソースBとCが他にあるとします.
ある構造体の宣言をソースCでし,ソースAとBでその構造体を使いたいものとします.
そのときコンパイルすると
構造体の再定義というエラー
error LNK2005: "その構造体は 既に ****.obj で定義されています。
とでます.
どのように宣言すればよいでしょうか?
0567デフォルトの名無しさん
2009/01/04(日) 01:27:400568デフォルトの名無しさん
2009/01/04(日) 01:29:390569566
2009/01/04(日) 01:31:04#include "ソースC.cpp"
とかいう変なことしてました.
0570デフォルトの名無しさん
2009/01/04(日) 10:03:30プロジェクトのオプションに64bit互換のチェックの有無があるからoffにする。
0572デフォルトの名無しさん
2009/01/04(日) 12:50:31コーディングはできるんですが、ソフトの機能を把握しておきたいのです
ちなみに2008です
0573デフォルトの名無しさん
2009/01/04(日) 14:13:05ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.ja/dv_vstoc/html/06ddebea-2c83-4a45-bb48-6264c797ed93.htm
0574デフォルトの名無しさん
2009/01/04(日) 22:13:13exeのディレクトリのフォルダのファイルは読み込もうとするとエラーが出ます。
何故ですか?
ifstream fin;
OK↓
fin.open("test.txt",ios_base::binary);
NG↓
fin.open("data/test.txt",ios_base::binary);
0575574
2009/01/04(日) 22:21:200576574
2009/01/04(日) 22:40:000577デフォルトの名無しさん
2009/01/05(月) 22:18:38なんとかなりませんか?
0578デフォルトの名無しさん
2009/01/05(月) 22:23:390579デフォルトの名無しさん
2009/01/06(火) 01:29:38特に型変換を記述しないで実行したんだけど,エラーも出ずに普通に動いた.
これ放置してて問題ない?それともちゃんと型変換した方がいい?
0580デフォルトの名無しさん
2009/01/06(火) 01:31:050581デフォルトの名無しさん
2009/01/06(火) 01:31:580582デフォルトの名無しさん
2009/01/06(火) 01:42:53_ismbslead、_ismbstrail関数を使って、文字列の中の2バイト文字を判別したいのですが・・・
int _ismbslead(
const unsigned char *str,
const unsigned char *current
);
この引数の渡し方の意味がわからないです。
CString型、もしくはこいつをコピーしたchar型の配列の各バイトをチェックするロジックを作りたいのですが、
第一、第二引数どちらについても、char*型で渡そうとすると「const unsigned char*に変換できません」というコンパイルエラーが。
この関数はどうやって使うモノなのか教えてください
0583デフォルトの名無しさん
2009/01/06(火) 01:43:130584デフォルトの名無しさん
2009/01/06(火) 10:21:57キャスト
0585デフォルトの名無しさん
2009/01/06(火) 10:52:44この場合無視していい
char * を unsigned char *にキャストする
0586デフォルトの名無しさん
2009/01/06(火) 17:44:30//入力ストリーム作成
FileStream^ fs = gcnew FileStream(fnp, FileMode::Open);
//バイナリリーダー作成
BinaryReader^ br = gcnew BinaryReader(fs);
//データ読み込み
int len = (int)fs->Length; //データ長
System::Byte data[len];
こうやると、C2057とC2466、C2133が出て、ファイルを読み込んでからByteの宣言は出来てないみたいなんですが、
どうすればファイルを読み込んだ後にByteの配列を宣言出来ますか?
0587デフォルトの名無しさん
2009/01/06(火) 19:08:36array<System::Byte>^ data = gcnew array<System::Byte>(len);
もっとも、File::ReadAllBytesを使えば1発で済むぞ。
0588デフォルトの名無しさん
2009/01/06(火) 19:30:25ありがとうございます。もうひと頑張りしてきます。
0589デフォルトの名無しさん
2009/01/06(火) 19:30:55>>587に安価ミスした・・・orz
0590デフォルトの名無しさん
2009/01/07(水) 10:13:31どなたかヘルプミーお願いします。
0591デフォルトの名無しさん
2009/01/07(水) 10:48:34絞るならCOMもつけるといいかも
0592デフォルトの名無しさん
2009/01/07(水) 12:30:36サンクス!
とりあえずとっかかりができました。これからいろいろ調べてみようと思います。
0593デフォルトの名無しさん
2009/01/07(水) 18:34:46それかString以外の別の型使わなきゃだめですか?
テキストボックスに改行付きで変数で一括で突っ込みたいんですが・・・
0594デフォルトの名無しさん
2009/01/07(水) 18:55:30Stringということは.NETか?
\r\n
0595デフォルトの名無しさん
2009/01/07(水) 19:47:070596デフォルトの名無しさん
2009/01/07(水) 20:42:21できました、ありがとうございます。
0597デフォルトの名無しさん
2009/01/07(水) 23:59:31何か方法はありませんでしょうか?
Visual Studio2008でプログラミングをしています。
0598デフォルトの名無しさん
2009/01/08(木) 00:39:420599597
2009/01/08(木) 01:12:20直線を書き込みたいのですが、何か方法はないですか??
0600デフォルトの名無しさん
2009/01/08(木) 06:41:300601デフォルトの名無しさん
2009/01/08(木) 08:08:14CImageにはGetDC/ReleaseDCメンバ関数がある。
0602デフォルトの名無しさん
2009/01/09(金) 19:10:49どこをいじれば変えられますか?
0603デフォルトの名無しさん
2009/01/09(金) 22:33:290604デフォルトの名無しさん
2009/01/09(金) 23:24:160605デフォルトの名無しさん
2009/01/11(日) 09:13:26SetWindowTextで文字列を挿入するとEN_UPDATEイベントが発生しません。
どうすれば良いでしょうか?
0606デフォルトの名無しさん
2009/01/11(日) 09:23:580607デフォルトの名無しさん
2009/01/11(日) 16:28:57#include <string>
using namespace std;
void main(){
wcout<<L"test";
wcout<<L"うんこ";
getchar();
}
なぜかL"うんこ"が表示されません。
っていうか日本語が表示されないのですが
なんとかしてください。
0608デフォルトの名無しさん
2009/01/11(日) 16:31:090609デフォルトの名無しさん
2009/01/11(日) 16:48:540610デフォルトの名無しさん
2009/01/12(月) 11:36:16ncbファイル消して開きなおしても、入力支援できない・・・
0611デフォルトの名無しさん
2009/01/13(火) 10:46:21#endifと最後に打った瞬間、上記文(#endifから上)の文字が全て灰色に変わりました。
(#ifdefなら青くなる筈だが、灰色に…)
色付に戻したいです。どうすれば良いのでしょうか?
よろしくお願いします。
0612デフォルトの名無しさん
2009/01/13(火) 11:10:490613デフォルトの名無しさん
2009/01/13(火) 11:48:590614611
2009/01/13(火) 13:51:34一番最初のプリプロセッサ命令のスペルミスしてた。
数時間格闘した結末はやはり呆気ないものだな…。
0615デフォルトの名無しさん
2009/01/13(火) 14:37:200616デフォルトの名無しさん
2009/01/13(火) 15:07:460617デフォルトの名無しさん
2009/01/13(火) 15:12:550618デフォルトの名無しさん
2009/01/13(火) 15:23:060619デフォルトの名無しさん
2009/01/13(火) 15:27:11市ねじゃなくて死ね
0620デフォルトの名無しさん
2009/01/13(火) 15:39:180621デフォルトの名無しさん
2009/01/13(火) 15:57:130622デフォルトの名無しさん
2009/01/13(火) 18:29:48普通は指定しないですよね?
でもなぜかしれを追加したらリンク通りました・・・
ありがとうございます。
0624デフォルトの名無しさん
2009/01/15(木) 01:15:15・開発環境・・WindowsVista
Debugモード、Releaseモード共にコンパイルは通ります。
Debugモードでデバッグ無しで実行は問題なく動作し、正常に終了します。
Releaseモードでデバッグ無しで実行した際には、途中でOSからのエラー、
----.exeは動作を終了しました。
問題が発生したため、プログラムが正しく動作しなくなりました。
というメッセージが出、途中で終了します。また、エラーが出るタイミングも
まちまちです。
これはどういう問題かと思われますか?タイミング問題でしょうか?
0625デフォルトの名無しさん
2009/01/15(木) 01:24:300626デフォルトの名無しさん
2009/01/15(木) 08:00:10アプリを一つだけ起動した状態は問題ないんですが、二つ以上起動すると
タスクバーのボタンがグループ化されたときに「(2) TODO: <ファイルの説明>」というような
表記になってしまいます。
このような文言らしきものがリソースの VS_VERSION_INFO にあったので
適当に編集してみたのですが、表記は変わりませんでした。
どうしたらタスクバーの表記が正しいものになるでしょうか?
0628デフォルトの名無しさん
2009/01/15(木) 10:37:15以下のレジストリから該当アプリを削除して再度実行する。
HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
0629デフォルトの名無しさん
2009/01/15(木) 10:56:59これのウィンドウハンドルはm_hWndでしょうか?
0630デフォルトの名無しさん
2009/01/15(木) 17:56:350631デフォルトの名無しさん
2009/01/15(木) 18:57:02文字列として埋め込むことって可能ですか?
0632デフォルトの名無しさん
2009/01/15(木) 19:04:250633626
2009/01/15(木) 19:10:04おおお 初回起動時の値をずっと保持しているのですね。
消して再実行したらきちんと編集した値に更新されました。
どうもありがとうございました。
0635デフォルトの名無しさん
2009/01/15(木) 19:21:23#define hoge "うんこタロウ"
0637デフォルトの名無しさん
2009/01/15(木) 19:37:51VCは自動でメイクした人の名前を認識できませんよ
0639631
2009/01/15(木) 19:53:11static const char NAME[NAME_LEN] ("HOGEHOGE");
と、ソースに埋め込んで、ビルド後のイベントで
実行ファイルをバイナリレベルで走査し、
指定文字列を発見したらGetUserName()を埋め込む
というのは危険すぎるでしょうか?
0640デフォルトの名無しさん
2009/01/15(木) 19:57:520641631
2009/01/15(木) 20:05:23恐らく*.projあたりに埋め込まれているのだと思うので、
VCを使用している限り埋め込む実行ファイルと
プロジェクトを一対で持ちまわれば
可能になるのではないかな、と。
ただ、プログラムのコード中に(想定しているバッファ以外に)
走査対象文字列が出てきたらと考えると危険な香りが・・・
0642デフォルトの名無しさん
2009/01/15(木) 20:42:25コンパイルオプションに環境変数 USERNAME を埋め込むのはどうか?
/D "HOGEHOGE_USERNAME=\"$(USERNAME)\""
コードでその文字列を確保
CString sUserName = _T(HOGEHOGE_USERNAME);
0643デフォルトの名無しさん
2009/01/15(木) 20:52:30OnGetMinMaxInfoで最小サイズを指定していると思われるウィンドウではどうしてもタイトルバー
だけにすることができません。
どうすればそのようなウィンドウでもタイトルバーだけにすることができるでしょうか。
Microsoft Visual C++ 2008 Express Edition DLLファイル(TTBaseのプラグイン)
0645デフォルトの名無しさん
2009/01/16(金) 22:47:03ロベールのC+;教室ってサイトでは Win32 コンソール アプリケーションを使ってやるみたいなんですけどどれがどう違うのか教えてください。
それと新規作成でファイルを選んだ場合に作成されるのがプロジェクトで作ったのと何が違うのかも・・・
VC++2008EEを使ってます
0646デフォルトの名無しさん
2009/01/17(土) 07:38:09CLRは.NET frameworkを使ったプログラムでC#やVisualBasicで作るのと同じ中間言語にコンパイルされる
C++で使う利点は無いので最初からC#で書いたほうが楽
実行時にランタイムが必要だったり不便な点がある
Win32は普通のプログラムなのでこれで作れ
全般はコンパイラを別のにして開発環境だけ使うとかしてクロスコンパイルが出来る(メイクファイルプロジェクト)
0647デフォルトの名無しさん
2009/01/17(土) 16:58:590648デフォルトの名無しさん
2009/01/17(土) 17:26:000649デフォルトの名無しさん
2009/01/17(土) 18:53:520650デフォルトの名無しさん
2009/01/18(日) 01:58:130651デフォルトの名無しさん
2009/01/19(月) 11:10:240652デフォルトの名無しさん
2009/01/19(月) 11:30:17if (dlg.DoModal() == IDOK)
{
MessageBox(dlg.GetFileName());
}
0653デフォルトの名無しさん
2009/01/19(月) 13:31:54できましたありがとう
0654デフォルトの名無しさん
2009/01/19(月) 23:39:08SetupDiGetDeviceRegistryPropertyほうを使うのが良いらしいんですが、
どういう理由なんでしょうか?
0655デフォルトの名無しさん
2009/01/20(火) 11:40:370656デフォルトの名無しさん
2009/01/20(火) 23:21:50人に出来上がったexeファイルを配布するときに
このアプリケーションの構成が正しくないため、 アプリケーションを開始できません
でした。
というエラーを起こさないようにプロジェクトのランタイムライブラリの設定を
マルチスレッドDLLからマルチスレッドに変えました。
そうしたら以下のような警告が出て、他にも外部シンボルが未解決ですというエラーが大量に出ました。
warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
人に配布するときに一番上のエラーが出なく、かつリンクが通るようにするにはどのようにすればいいのですか?
0657デフォルトの名無しさん
2009/01/20(火) 23:42:25DebugビルドとReleaseビルドが混じってるとか
リビルドしてみるか、言われたとおり /NODEFAULTLIB:LIBCMT.lib を試してみる
0658デフォルトの名無しさん
2009/01/21(水) 09:08:20元の構成に戻して、構成プロパティの全般ページの「MFCの使用」を
「スタティックライブラリでMFCを使用する」にする。
か、
元の構成に戻して、該当する方を渡す。
Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=ja
Microsoft Visual C++ 2005 再頒布可能パッケージ (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=ja
0659656
2009/01/21(水) 14:59:38他の人が作っているゲームや商業用のゲームは
再配布可能パッケージをインストールしなくても動いているのが気になります。
それはなぜなのでしょうか。
0660デフォルトの名無しさん
2009/01/21(水) 15:10:46スタティックリンクかもしれないし、
MFCを使ってないかもしれないし、
VCじゃないかもしれないし、
付属のセットアップで全部インストールされるかもしれないし、
…
もういいですか?
0661デフォルトの名無しさん
2009/01/21(水) 15:11:210662デフォルトの名無しさん
2009/01/21(水) 15:14:29取り敢えず「スタティックライブラリでMFCを使用する」でどうなるかやってみろ。
0663デフォルトの名無しさん
2009/01/21(水) 15:17:550664デフォルトの名無しさん
2009/01/21(水) 15:20:03開発環境や使用ライブラリぐらい調べてから質問しろ
0665デフォルトの名無しさん
2009/01/21(水) 15:21:150666デフォルトの名無しさん
2009/01/21(水) 15:27:310667デフォルトの名無しさん
2009/01/21(水) 15:28:560668デフォルトの名無しさん
2009/01/21(水) 15:39:570669デフォルトの名無しさん
2009/01/21(水) 15:44:280670デフォルトの名無しさん
2009/01/21(水) 16:11:57Visual C++ 2005以外で作れば入れる必要ない
0671デフォルトの名無しさん
2009/01/21(水) 17:02:410672デフォルトの名無しさん
2009/01/21(水) 17:16:41ちょっと待て
0673デフォルトの名無しさん
2009/01/21(水) 17:51:52サイズ変更のメッセージでサイズ調整したりするけど
他から勝手に余計なことされたらどうなるんだ?
0674デフォルトの名無しさん
2009/01/21(水) 17:55:570675デフォルトの名無しさん
2009/01/21(水) 17:59:02ウィンドウシェードが目的なので他のプログラムですね。
コマンドプロンプトなどだと中身が一行見えたり、GIMPだとほとんどウィンドウの中身が見えてしまっていて全く使えません。
もちろん手動でタイトルバーだけにしようと思っても(OnGetMinMaxInfoかなんかで)それ以上小さくならないですし。
0676デフォルトの名無しさん
2009/01/21(水) 18:48:54知ってるやつが来るまでおとなしく待ってればいいよ
0677デフォルトの名無しさん
2009/01/21(水) 19:37:30MacやBlackboxなどにあるウィンドウをタイトルバーだけにする機能のことです。
0678デフォルトの名無しさん
2009/01/21(水) 19:44:190679デフォルトの名無しさん
2009/01/21(水) 20:03:54他のシェードツールでは問題なく動作するの?
それなら動かしつつSPYで見てみるとか
0680デフォルトの名無しさん
2009/01/21(水) 20:26:41互換シェル使っていますのでexplorer.exeはファイラー以外使ってません。
でもシェルを切ればタイトルバーだけになりますね。あまりあれは好きではありませんが。
>>679
Stylerでできた気がするのですが諸事情で確認できません。
0681デフォルトの名無しさん
2009/01/21(水) 22:40:49でもnew(nothrow)みたいに、既存のソースのnewを一個一個置き換えるのはやなので、一発でなんか無いですか?
0682デフォルトの名無しさん
2009/01/21(水) 22:55:400683デフォルトの名無しさん
2009/01/21(水) 22:59:59ググればでてくるんじゃないか?
0684デフォルトの名無しさん
2009/01/21(水) 23:03:430685デフォルトの名無しさん
2009/01/21(水) 23:08:010686デフォルトの名無しさん
2009/01/21(水) 23:09:370687デフォルトの名無しさん
2009/01/21(水) 23:49:00えー
教えてください
0688デフォルトの名無しさん
2009/01/22(木) 00:24:090689デフォルトの名無しさん
2009/01/22(木) 14:29:19英語のものばっかり表示されるんですが、日本語で表示するにはどうすればいいですか?
オプションで全部日本語を設定してるんですが・・・
0690デフォルトの名無しさん
2009/01/22(木) 14:55:160691デフォルトの名無しさん
2009/01/22(木) 15:00:090692デフォルトの名無しさん
2009/01/22(木) 15:03:550693デフォルトの名無しさん
2009/01/22(木) 15:06:280694デフォルトの名無しさん
2009/01/22(木) 15:20:01キーワードタブのフィルタ条件を「日本語ドキュメント」にする。
その状態は記憶されるので次からは日本語になる。
0695デフォルトの名無しさん
2009/01/22(木) 15:50:57メニューバーの項目を一つだけ右端に持って行きたいのですが可能でしょうか?
下のような感じで。
________________________________
|ファイル|編集|表示|___________________|ヘルプ|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0696デフォルトの名無しさん
2009/01/22(木) 15:58:18不可能
0697デフォルトの名無しさん
2009/01/22(木) 16:04:28無理
0698デフォルトの名無しさん
2009/01/22(木) 16:05:12感謝です。
0699デフォルトの名無しさん
2009/01/22(木) 16:07:43リソースじゃなくて自分でメニューバーのウィンドー作れば可能
0700695
2009/01/22(木) 16:15:20感謝です。
http://yokohama.cool.ne.jp/chokuto/urawaza/menu1.html
メニューバーの作り方はここを参考に作れば大丈夫でしょうか?
0701デフォルトの名無しさん
2009/01/24(土) 21:59:521から勉強しなければならないのですが、そもそもこのソフトで何ができるようになるのでしょうか?
上司に聞こうにも上手くはぐらかされるだけでストレスになっています。
例えばこういうものが作れるといった具体例があれば教えていただけないでしょうか?
0702デフォルトの名無しさん
2009/01/24(土) 22:09:400703デフォルトの名無しさん
2009/01/24(土) 22:17:490704デフォルトの名無しさん
2009/01/24(土) 22:59:02ウインドウズのアプリケーション。
ライブラリ。
DLL。
COM。
ActiveX。
Webアプリケーション。
0705デフォルトの名無しさん
2009/01/25(日) 04:26:100706デフォルトの名無しさん
2009/01/25(日) 13:11:32VCはなんでも作れるらから安心しろ。
0707デフォルトの名無しさん
2009/01/25(日) 13:30:490708デフォルトの名無しさん
2009/01/25(日) 13:38:02意味は通らなくもない
0709デフォルトの名無しさん
2009/01/25(日) 16:33:42教えてください。
0710デフォルトの名無しさん
2009/01/25(日) 16:40:520711デフォルトの名無しさん
2009/01/25(日) 16:49:552008インストールしてみます。
0712デフォルトの名無しさん
2009/01/25(日) 19:45:42会社の業務に関係するシステムを作らされそうなの?
たぶんC#とかVBでやったほうがいいとおもうけど。
0713デフォルトの名無しさん
2009/01/26(月) 23:16:58CXXXDlg::OnPaint()
{
if(IsIconic())
{
処理
って奴あるじゃん。
あのIsIconicのときの処理って走りますか?
何時走るの??
ちなみにモーダルやモードレスの子ダイアログの場合、最小化すると走るらしいけど、
メインウインドの場合は?
0714デフォルトの名無しさん
2009/01/26(月) 23:28:03MSDNには最小化したら0以外が返るって書いてあるけど、
ダイアログ以外のウインドウだと動作が違うの?
0715デフォルトの名無しさん
2009/01/26(月) 23:30:190716デフォルトの名無しさん
2009/01/26(月) 23:41:090717デフォルトの名無しさん
2009/01/26(月) 23:41:21{
int a=0, b=99;
Exchange(a,b);
printf("a=%d ,b=%d\n",a,b);
}
int Exchange(int t1, int t2){
int tmp = t2;
t2 = t1;
t1 = tmp;
return t1,t2;
}
上の文では戻り値が返されずa=0,b=90と言う結果が出てしまいます。
どんな時に戻り値が適用され、どんな場合に仮引数、実引数が使われるのかが分かりません。
もしかして2つの値は返されないのでしょうか?
また、これは値渡しと言うものなのでしょうか?
混乱しています。よろしくお願いします。
0718デフォルトの名無しさん
2009/01/26(月) 23:42:49そうそう、そんな感じ。
ウィザードがわざわざ生成するくらいだから何とかすれば通るような。
でもブレイクポイント設定して何をやってもブレイクしないし。
0719デフォルトの名無しさん
2009/01/26(月) 23:45:16煽るわけじゃなくて、マジ疑問なんだけど、どういうのを
手本にして勉強してるの?
ネットのサイトとか?
二つの値を返したいときはこうだな。
void Exchange(int* t1, int* t2){
int tmp = *t2;
*t2 = *t1;
*t1 = tmp;
}
int main(void)
{
int a=0, b=99;
Exchange(&a,&b);
printf("a=%d ,b=%d\n",a,b);
}
0720デフォルトの名無しさん
2009/01/26(月) 23:46:38Win3.1時代の名残りかな?
そのころは、最小化するとタスクバーじゃなくて、アイコン化されてたし。
0721デフォルトの名無しさん
2009/01/26(月) 23:49:23最小化なのかアイコン化なのかもちょっと気になる。。
このIsIconic()〜のソースってSDIとかなら分かる気がする。
たとえば、親ウインドの中の子ウインドを最小化すると、親画面の左下に小さくなって並ぶじゃん。
あのときに、親ウインドにWM_PAINTが発生すれば、子供にも回ってきて、
子供は自分で自分がアイコンで占有している部分を更新リージョンからくり抜くんでしょ。たぶん。
でもメインウインドのダイアログのOnPaintでIf(IsIconic())って成立するのかな。。
0722デフォルトの名無しさん
2009/01/26(月) 23:51:38オーバーロードができないんですが。
0723デフォルトの名無しさん
2009/01/26(月) 23:54:21その場合は、子ウィンドウからしたら、全領域が非クライアント領域のような気がするし、
第一、WS_CLIPCHILDRENを付ければ勝手にやってくれることのような気がする。
0724デフォルトの名無しさん
2009/01/26(月) 23:55:14そういう仕様。
http://msdn.microsoft.com/en-us/library/29dh1w7z.aspx
> ..., and __int32 is synonymous with type int.
なお、ここには載っていないけど、__int64もlong longと同じ。
0725722
2009/01/26(月) 23:56:48ありがとうございます。
0726デフォルトの名無しさん
2009/01/26(月) 23:57:18ああ。。確かに。
いったいこのコードなんだろう。誰かご存知のかた、ご回答お待ちしてます。
0727デフォルトの名無しさん
2009/01/26(月) 23:58:59いや、ポインタを使わずに返すには、こうしたらどうか?
……と、思って書いてみたんですけど…やっぱり無理ですよね。
サンクスです。
0728デフォルトの名無しさん
2009/01/26(月) 23:59:430729デフォルトの名無しさん
2009/01/27(火) 00:06:10構造体を使えばできるけど、Cじゃあんまりやらないな。
struct pair {
int first, second;
};
struct pair swap(int a, int b)
{
struct pair c;
c.first = b;
c.second = a;
return c;
}
0730デフォルトの名無しさん
2009/01/27(火) 00:12:11どう見ても、VC#でやったほうが楽なのに、なんでVC++のほうがメジャーなんですか?
0731デフォルトの名無しさん
2009/01/27(火) 00:16:13VC#なんか分からん事だらけだからじゃないの?
なんでVC++で簡単にテキストファイル開けたのに
C#でその方法をぐぐらなくっちゃいけないの?
そこまでして移行してご利益がいっぱいあるの?
MSは好都合かもしれないけど。そんなものみんないやなんです。
0732デフォルトの名無しさん
2009/01/27(火) 00:16:36C#よりも10年近く先に登場した分、資産・ノウハウが貯まっているところが多い。
0733デフォルトの名無しさん
2009/01/27(火) 00:22:46求人サイトで、C++とC#で検索してみたら、まだC++のほうが多かったな。
0734デフォルトの名無しさん
2009/01/27(火) 00:24:43C++だけだと、LinuxとかUnixとか組み込みとかあるよ。
0735デフォルトの名無しさん
2009/01/27(火) 00:25:270736デフォルトの名無しさん
2009/01/27(火) 00:29:21aspで、イントラ作ろうって案件だと、C#かVBだしな。
0737デフォルトの名無しさん
2009/01/27(火) 00:37:49その割には使えるコントロールが全くないじゃないですか?
しかも、Viewって一つしかないし・・・
0738デフォルトの名無しさん
2009/01/27(火) 00:45:22Viewは複数あるじゃん。
0739デフォルトの名無しさん
2009/01/27(火) 00:47:41コントロールは増えてないってだけでしょ。
MSはVC向けにはわざとそういう便利なライブラリを出さないんだろうね。
おらおらおらおらおらおらおらおらおらおら!!!!!!
さっさとドットネットにいきやがれこんちくしょーーーーーー!!
ってことですね。
おっとつい興奮していつの間にかCapsLockがONになってた
0740デフォルトの名無しさん
2009/01/27(火) 00:49:02遅スレだけれどmain関数の中を
int main(void)
{
struct pair pair1;
pair1.first = 0;
pair1.second = 90;
swap(pair1.first,pair1.second);
printf("first=%d,second=%d\n",pair1.first,pair1.second);
return 0;
}
と、書いてみた。
駄目だった…。ちょっと思考錯誤してきます。
0741デフォルトの名無しさん
2009/01/27(火) 00:51:4790年代はActiveXの時代だった。
どっちかというと、VBで使うのが主流だったと思うけど。
0742デフォルトの名無しさん
2009/01/27(火) 00:52:33pair = swap(1, 2);
0743デフォルトの名無しさん
2009/01/27(火) 00:55:12ここで言っているコントロールってActiveXのことなん?
もしそうならVCでも使えるんじゃね?
0744デフォルトの名無しさん
2009/01/27(火) 01:10:28サンクスです。構造体に入れるのを忘れるとは…お恥かしい。
面倒な質問だったと思いますが最後まで有難う御座います。
これでひのきのぼうを装備してスライムが倒せそうです。
0745デフォルトの名無しさん
2009/01/27(火) 02:32:06使えるけど、たしか標準ではメニューに入っていないでしょ。
0746デフォルトの名無しさん
2009/01/27(火) 07:43:04でも2008SP1でごっそり増えたじゃない、C#にもまだないようなのが。
まあこれらもWindowsに標準で組み込まれる予定だけど。
0747デフォルトの名無しさん
2009/01/27(火) 18:29:11int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{/*ウインドウクラス構造体の設定*/
HWND hDlgWnd;
//ダイアログボックスを表示します
hDlgWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgWndProc);
ShowWindow(hDlgWnd, SW_SHOW);
UpdateWindow(hDlgWnd);
//戻り値を返す
return 0;
}
このようにモードレスダイアログを表示する関数を宣言しているのですが、一瞬表示されてすぐに消えてしまいます。
どこがおかしいのでしょうか?
ここの記述がおかしいのかはわかりませんが、ご検討をお願いします。
0748デフォルトの名無しさん
2009/01/27(火) 18:39:15モードレスダイアログは普通のウィンドウのようにメッセージループが必要。
0749デフォルトの名無しさん
2009/01/27(火) 18:43:080750デフォルトの名無しさん
2009/01/27(火) 19:46:16では、WinMainの中に記述してはいけないということでしょうか?
今からいろいろやってみますが、かなりの初心者なので少しヒントを下さい。
お願いします!
0751デフォルトの名無しさん
2009/01/27(火) 19:58:16メッセージループっていってんだから
メッセージループでググレよウンコ
0752デフォルトの名無しさん
2009/01/27(火) 20:15:28{ WNDCLASSEX wcex; //ウィンドウクラス構造体
HWND hDlgWnd;
MSG msg;
ghInst = hInstance;
/*ウィンドウクラス構造体を設定*/
//ダイアログボックスを表示します
hDlgWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgWndProc);
ShowWindow(hDlgWnd, SW_SHOW);
UpdateWindow(hDlgWnd);
while (GetMessage(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
//戻り値を返す
}
という風に書き直したらできました。しかし、このソースおかしいぞと思われたらレスください。
748,749,751さんどうもありがとうございました。
0753デフォルトの名無しさん
2009/01/27(火) 20:36:450754デフォルトの名無しさん
2009/01/27(火) 22:23:39毎回Ctrl+Spaceするのはめんどくさいですしセミコロン打っても自動で文字間隔とかを調整してくれませんし不便で仕方ないです
補完でこのスレを抽出するとないと言われていますがそんな馬鹿なことはないですよね?
0755デフォルトの名無しさん
2009/01/27(火) 23:12:010756デフォルトの名無しさん
2009/01/28(水) 00:07:12もしかして、見放された?
0757デフォルトの名無しさん
2009/01/28(水) 00:20:17アーキテクチャ考えれば無いのは当たり前
0758デフォルトの名無しさん
2009/01/28(水) 00:38:43そうですか・・・ありがとうございました
0759デフォルトの名無しさん
2009/01/28(水) 00:40:33マイクロソフトのツールを使わせる戦略なの。
マイクロソフトにとってオープンソースや標準というものは金儲けの邪魔なのだ。
もちろん自分が好き勝手に決められる標準なら大好きだ。
0760デフォルトの名無しさん
2009/01/28(水) 01:01:13なんかのインタビューでC++はそういう用途のものじゃないから、って言っていた気がするが
見つけらんなかった。すまん。
0761デフォルトの名無しさん
2009/01/28(水) 02:19:59マイクロソフトの戦略というのは確かだが、
何でもかんでも決め付けるはどうかと
0762デフォルトの名無しさん
2009/01/28(水) 10:09:07MFCフューチャーパックなるものがリリースされて、
コントロールが10年ぶりくらいに刷新されたと聞いたけど、
あれ、どうなんだろう?
VS2003使いだから、導入したくても導入できない
0763デフォルトの名無しさん
2009/01/28(水) 13:24:190764デフォルトの名無しさん
2009/01/28(水) 13:40:56されてるよ
0765デフォルトの名無しさん
2009/01/28(水) 13:45:18ありがとうございます
0766デフォルトの名無しさん
2009/01/28(水) 15:23:17>>763-765
ttp://www.microsoft.com/japan/msdn/vstudio/express/2005/visualc/usingpsdk/
ttp://www.microsoft.com/japan/msdn/vstudio/express/default.aspx
0767デフォルトの名無しさん
2009/01/28(水) 15:29:210768デフォルトの名無しさん
2009/01/28(水) 16:00:05ExpressじゃなくてStandardの話をしている
0769デフォルトの名無しさん
2009/01/28(水) 16:45:30あれはコントロールってレベルじゃない。
http://www.atmarkit.co.jp/fdotnet/special/vs2008sp1/vs2008sp1_02.html
0770デフォルトの名無しさん
2009/01/28(水) 22:23:57すごい赤っ恥だな 俺だったら軽く鬱になる
0771デフォルトの名無しさん
2009/01/28(水) 22:47:54しょーもねー勘違いで、一人で変な方向に突っ走ってプロジェクトの火種くすぶらせるんだろーな。
0772デフォルトの名無しさん
2009/01/29(木) 10:47:040773デフォルトの名無しさん
2009/01/29(木) 11:37:35インスタンスハンドルが2つ必要なのでしょうか?
さっぱり分からないのでお願いします
0774デフォルトの名無しさん
2009/01/29(木) 11:39:29ためしに、単にCreateDialogを2回呼んでみては。
0775デフォルトの名無しさん
2009/01/29(木) 12:07:05hDlgWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgWndProc);
hDlg = hDlgWnd;
ShowWindow(hDlgWnd, SW_SHOW);
UpdateWindow(hDlgWnd);
while (GetMessage(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
ghInst = (HINSTANCE)GetWindowLong( hDlg , GWL_HINSTANCE ) ;
//ghInst = GetModuleHandle(NULL) ;
hDlgWnd2 = CreateDialog(ghInst, MAKEINTRESOURCE(IDD_DIALOG2),hDlg,(DLGPROC)DlgWndProc);
hDlg2 = hDlgWnd2;
ShowWindow(hDlgWnd2, SW_SHOW);
UpdateWindow(hDlgWnd2);
while (GetMessage(&msg2, NULL, 0, 0) > 0) {
TranslateMessage(&msg2);
DispatchMessage(&msg2);
}
return (int)msg.wParam;
}
このように記述しています
0776デフォルトの名無しさん
2009/01/29(木) 12:11:07同時ならループの前で2回作れ
0777デフォルトの名無しさん
2009/01/29(木) 12:16:400778デフォルトの名無しさん
2009/01/29(木) 12:18:21hDlg = hDlgWnd;
ShowWindow(hDlgWnd, SW_SHOW);
UpdateWindow(hDlgWnd);
ghInst = (HINSTANCE)GetWindowLong( hDlg , GWL_HINSTANCE ) ;
hDlgWnd2 = CreateDialog(ghInst, MAKEINTRESOURCE(IDD_DIALOG2),hDlg,(DLGPROC)DlgWndProc);
hDlg2 = hDlgWnd2;
ShowWindow(hDlgWnd2, SW_SHOW);
UpdateWindow(hDlgWnd2);
while (GetMessage(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
//戻り値を返す
//return 0;
}
このように記述したらダイアログ2つともでました!
ですが、2つめのダイアログの表示が1つめのレイアウトとかぶってしまいました。色とか線が2つめのダイアログにも影響を与えています。
0779デフォルトの名無しさん
2009/01/29(木) 15:50:33自分のマシンにIE7が入っていればIEコンポーネントを埋め込んだアプリを起動したときIE7として起動するんですか?
0780778
2009/01/29(木) 16:00:510781デフォルトの名無しさん
2009/01/29(木) 16:08:310782デフォルトの名無しさん
2009/01/29(木) 16:19:34警告 GetMessage 関数は、0 以外の値、0、-1 のいずれかを返します。したがって、次のようなコードは避けてください。
while (GetMessage(lpMsg, hWnd, 0, 0)) ...
と書いてるくせにVisual C++の自動作成されたやつはしっかりそうなっているという矛盾
0783デフォルトの名無しさん
2009/01/29(木) 21:26:06VC++ではfgets→atollができないので、
scanfを使うしかないのでしょうか?
0784デフォルトの名無しさん
2009/01/29(木) 21:30:17long long result = 0;
int negative=0;
while (*str == ' ' || *str == '\t')
str++;
if (*str == '+')
str++;
else if (*str == '-') {
negative = 1;
str++;
}
while (*str >= '0' && *str <= '9') {
result = (result*10) - (*str++ - '0');
}
return negative ? result : -result;
}
0785デフォルトの名無しさん
2009/01/29(木) 21:30:56ありがとうございます。
ぐへへへへ、これであんなことやこんなことができる。
0786デフォルトの名無しさん
2009/01/29(木) 21:33:250787デフォルトの名無しさん
2009/01/29(木) 21:36:17何だか分からんが
とりあえず通報しておいた
0788デフォルトの名無しさん
2009/01/29(木) 21:56:380789デフォルトの名無しさん
2009/01/30(金) 00:46:270790デフォルトの名無しさん
2009/01/30(金) 01:24:220791デフォルトの名無しさん
2009/01/30(金) 06:55:220792デフォルトの名無しさん
2009/01/31(土) 04:49:26(どの変数がおかしいのか、とか、、)
0793デフォルトの名無しさん
2009/01/31(土) 04:54:410794デフォルトの名無しさん
2009/01/31(土) 05:01:11期待通りの値になっているか確認したら
うまいやり方は玄人が来るまで待て
0795デフォルトの名無しさん
2009/01/31(土) 05:10:14ありがと。それはやってるけど、何が正常なのかよくわからないです。
理由を
0796デフォルトの名無しさん
2009/01/31(土) 05:29:15どういう値が戻るのか、渡すのが正しいのか確認しなよ
それも出来ないならエスパーが来るまで2時間程寝たら?
今のテンパってる状態では何かやってもうまくいかないさ
0797デフォルトの名無しさん
2009/01/31(土) 05:35:25scanfを使って一行で表すにはどうしたらいいですか?
0798デフォルトの名無しさん
2009/01/31(土) 10:38:180799デフォルトの名無しさん
2009/01/31(土) 10:44:20GetLastError();
0800デフォルトの名無しさん
2009/01/31(土) 10:48:18GetLastError()
0801デフォルトの名無しさん
2009/01/31(土) 16:29:08空のプロジェクトとWin32コンソールアプリケーションとでは
どこがどのように異なるのでしょうか。
VC++は2008 Expressです。
0802デフォルトの名無しさん
2009/01/31(土) 16:40:57初心者でもひろってくれる会社はないですか?
0803デフォルトの名無しさん
2009/01/31(土) 16:43:21Win32コンソールアプリケーションだとmain関数入りのソースファイルが初めから追加済み。
空のプロジェクトは本当に空っぽ。
0804デフォルトの名無しさん
2009/01/31(土) 17:13:58お前のVC++は2008 Expressは飾りか?
0805デフォルトの名無しさん
2009/02/01(日) 13:39:52なんでCreateWindow()でNULLが返るのか分かりました。WinProc()のWM_CREATEの中で
変なことやってました。早く寝るべきだったス。
ありがとうございました。
0806デフォルトの名無しさん
2009/02/01(日) 13:46:36ないです。
0807デフォルトの名無しさん
2009/02/01(日) 13:47:54int a, b, c;
scanf("%d%d%d", &a, &b, &c);
0808デフォルトの名無しさん
2009/02/01(日) 19:23:23求人サイトで、未経験者可の会社さがせ。
0809デフォルトの名無しさん
2009/02/01(日) 21:02:250810デフォルトの名無しさん
2009/02/01(日) 21:38:39県外に出てまでデジドカにはなりたくないな。
ところで情報工学科に受かったが、入学前の間このままVCで遊んでいればおk?
0811デフォルトの名無しさん
2009/02/01(日) 21:47:15TOEICとか英語の資格取る勉強とかすれば?って気がする
0812デフォルトの名無しさん
2009/02/01(日) 22:19:10確かに、何も知らない人にも最初から教えてくれるはずだからな。
0813デフォルトの名無しさん
2009/02/01(日) 22:44:30私立の情報工学科なんて専門学校と同じだろ?
0814デフォルトの名無しさん
2009/02/01(日) 22:52:430815デフォルトの名無しさん
2009/02/01(日) 22:55:190816デフォルトの名無しさん
2009/02/02(月) 01:13:570817デフォルトの名無しさん
2009/02/02(月) 01:21:52後は仕様書きちんと書いてからソフトを作ってみると良い経験になるかな
0818デフォルトの名無しさん
2009/02/04(水) 01:03:58サービスパック入れたとたん120個エラー。
しかも触ったことも無いヘッダファイルから・・・
・・・・orz
こういうことって良くあるんでつか?
0819デフォルトの名無しさん
2009/02/04(水) 01:34:26ダイアログベースにするとしょぼいコントロールが数個あるだけで・・・
ドキュメントビューにすると、全く画面が作れないし・・・
どうやってつくるのか、いいHPあったら教えてください
0820デフォルトの名無しさん
2009/02/04(水) 01:59:41数値のデータが列挙された Excelデータがあります。内容は、IDと、00 や、 02など
見た目では分かりにくいデータです。
Windows SDKを使用して、Excelの値の意味を画面表示することが目的のプログラムを
作成しようと調査しています。
そこで、Accessのデータベースと、Excelのパラメータを比較して画面出力する処理を
考えていますが、そもそもWindows SDKを使って、mdbと接続できるのでしょうか?
0821デフォルトの名無しさん
2009/02/04(水) 02:26:06バイナリファイルに自分でアクセスする処理を作って下さい。
0822デフォルトの名無しさん
2009/02/04(水) 03:03:190823デフォルトの名無しさん
2009/02/04(水) 08:27:33com使ってexcelやaccessと接続するんじゃないの
office オートメーション
あたりでのキーワードでググってみたら?
0824デフォルトの名無しさん
2009/02/04(水) 16:43:220825デフォルトの名無しさん
2009/02/04(水) 17:29:120826デフォルトの名無しさん
2009/02/04(水) 20:33:51ダイアログアプリにして
ぺたぺたコントロールを貼り付けていく
0827デフォルトの名無しさん
2009/02/04(水) 21:18:03SDIとかMDIはめんどくさいしほとんど使う価値無し。
最近のアプリ(ウイルスソフトとか)って概観がWebページみたいな感じじゃないですか?
ああいうのってどうやって作るんだろ。
以前DirectXを使ってボタンを描画するライブラリとか見たことあるけど。
0828デフォルトの名無しさん
2009/02/04(水) 21:25:070829デフォルトの名無しさん
2009/02/04(水) 21:55:11そんな感じなの?
ふーん。
0830デフォルトの名無しさん
2009/02/05(木) 11:13:480831デフォルトの名無しさん
2009/02/05(木) 22:10:280832デフォルトの名無しさん
2009/02/05(木) 22:27:410833デフォルトの名無しさん
2009/02/06(金) 00:08:05確かに!
.NET不要じゃね?て思っちまった
0834デフォルトの名無しさん
2009/02/06(金) 03:55:01なるべくコードの量を減らしたいので、今、すべての.cppでincludeしてあるstdafx.hを使ってなんとかしたいです。
まずCMainFrameをグローバル変数にしたいのですが、
// stdafx.h
extern CMainFrame* g_pMainFrame;
// MainFrame.cpp
#include "stdafx.h"
CMainFrame* g_pMainFrame;
CMainFrame()
{
g_pMainFrame = this;
}
MainFrame.cpp内でグローバル変数を宣言しているのにexternするのは変化もしれませんが、
すべてのファイルで共有するのでこれでエラーが出ないようにしたいんです。
どうすればいいでしょうか?
0835デフォルトの名無しさん
2009/02/06(金) 09:03:48あまりそれ使うのはお勧めしないが、
MainFrame.cppだけプリコンパイルヘッダーはずしてstdafx.hインクルード前に#define入れて
#ifdefでextern宣言飛ばすようにするとか。
0836デフォルトの名無しさん
2009/02/06(金) 10:21:44#define CxxxApp::GetMainWnd() g_pMainFrame
CMainFrame* CxxxApp::GetMainWnd()
{
return DYNAMINC_DOWNCAST( CMainFrame, m_pMainWnd);
}
0837デフォルトの名無しさん
2009/02/06(金) 10:25:17class CxxxApp
{
public:
CMainFrame* GetMainWnd();
}
0838デフォルトの名無しさん
2009/02/06(金) 10:29:10#define CxxxApp::GetMainWnd() g_pMainFrame → #define theApp.GetMainWnd() g_pMainFrame
0839デフォルトの名無しさん
2009/02/06(金) 10:36:290840デフォルトの名無しさん
2009/02/06(金) 10:45:30ってあるからそれ以外にもあるのだろうね、大量にw
0841デフォルトの名無しさん
2009/02/06(金) 14:32:49コードの量を減らすのは見やすいようにするためなんですが、なるべく同じ関数は2度と呼び出さなくてもいいように
確保しておきたいんです。ループの中とかでも頻繁にクラス間のメンバ参照を使うので馬鹿にできないんです。
全ファイルにインクルードするのが面倒というか、増えていくファイルで自動で追加されるstdafx.hにglobal.hをインクルードしておくだけにしたいんです。
で1行は必ず自分のポインタを格納したグローバル変数をもう一度externするのをさけたいんです。
#defineで既にexternされている場合か、宣言が既にある場合はその行だけ飛ばすにはどうかけばいいんでしょうか?
0842デフォルトの名無しさん
2009/02/06(金) 15:22:23global.cpp をつくり変数はそこで定義すればいいじゃない。
よくやる手段としては、ヘッダファイルで
#ifdef EXTERN
#define EXTERN extern
#endif
とかやっといて、cpp1つだけインクルードの前に#define EXTERNとかやる。
stdafx.hを使うのであればmそのcppはプリコンパイルヘッダーを使わない設定にしないとならない。
0843デフォルトの名無しさん
2009/02/06(金) 15:22:49>>836 以降を実行しろ。グローバル変数になんぞする必要もない。
0844デフォルトの名無しさん
2009/02/06(金) 15:23:010845デフォルトの名無しさん
2009/02/06(金) 15:30:44WindApp派生クラスのヘッダファイルにextern theAppがあるだろ?
0846デフォルトの名無しさん
2009/02/06(金) 15:55:21externが書いてあるファイルをインクルードしておけば、どのファイルからでも使えるようになるんですか?
0847デフォルトの名無しさん
2009/02/06(金) 16:03:010848デフォルトの名無しさん
2009/02/06(金) 16:16:01みんなありがとう
0849デフォルトの名無しさん
2009/02/06(金) 16:29:21externの意味を間違えていたのが原因でしたすいません!
// .hのクラスの外(グローバル領域)
extern CMainFrame* g_pMainFrame;
// .hのクラスの中
CMainFrame* g_pMainFrame;
// .cppのCMainFrameのコンストラクタ
g_pMainFrame = this;
0850デフォルトの名無しさん
2009/02/06(金) 16:41:100851デフォルトの名無しさん
2009/02/06(金) 18:12:170852デフォルトの名無しさん
2009/02/06(金) 19:59:56何度こういうケースを見たことか。
0853デフォルトの名無しさん
2009/02/06(金) 21:51:31スレッドを生成するのに、JavaのThreadクラスのようなものは無いのでしょうか?
0854デフォルトの名無しさん
2009/02/06(金) 21:52:580855デフォルトの名無しさん
2009/02/06(金) 22:19:20じゃんじゃん使え。CWinAppの派生クラスに押し込めるとか、そんな糞めんどくさいことするな。
あとアクセス関数とか全然必要ないよ。
全部変数はパブリック。楽で良いぞ。
0856853
2009/02/06(金) 23:19:37ありがとうです。
CThreadはCWinThreadを継承して自分で作るってことですか?
調べてみたらこんなのしかなかったんですが、この方法でよいのでしょうか・・・?
http://www.tri-field.com/progtips/tips04.html
http://hp.vector.co.jp/authors/VA014436/prg_memo/windows/vctips/039.html
http://www.edita.jp/h1ro/one/h1ro8125407.html
0857デフォルトの名無しさん
2009/02/06(金) 23:41:560858デフォルトの名無しさん
2009/02/06(金) 23:52:15システムの処理上sqrtやcos,sinをかなり使っていて、
これらの処理が重いということは知っていたのですが、
「最近のPCだと、もちろん重いことには重いがそれほど四則計算と変わりない」と聞きました
実際のところはどうなのですか?
0859デフォルトの名無しさん
2009/02/06(金) 23:54:55アレだけたくさんのポリゴンを計算し、それらの表面の光沢を表現し
その膨大な演算を一瞬にしてこなしているだろ?
だから早いんだよ
0860デフォルトの名無しさん
2009/02/06(金) 23:57:03最近は2次元の計算作業なんて多少無理しても大丈夫なレベルになってるんですね。
ありがとうございます。
0861デフォルトの名無しさん
2009/02/07(土) 00:03:24自分のための処理であるのなら実際に自分が使用する環境で実測してみることをお勧めする
処理速度や計算機リソースをどの程度消費するかなどは結局のところ実際に計ってみないと議論できない面がある
実際に行いたい処理から規模をスケールダウンして実測してみてそこから外挿してそれが無理な処理か大丈夫なレベルか判断
0862デフォルトの名無しさん
2009/02/07(土) 00:17:320863デフォルトの名無しさん
2009/02/07(土) 04:53:420864デフォルトの名無しさん
2009/02/08(日) 00:16:09”→”、”・”と表示されるようになったんですが、
元に戻すにはどうしたらいいんでしょうか?
0865デフォルトの名無しさん
2009/02/08(日) 00:24:550866デフォルトの名無しさん
2009/02/08(日) 00:25:250867デフォルトの名無しさん
2009/02/08(日) 00:25:49直りました。
ありがとうございます。
0868デフォルトの名無しさん
2009/02/08(日) 20:03:10タブを押すと押しただけどんどんタブが追加されていくんですが、
これをタブをインデントをそろえるために使えませんでしょうか?
キーボードをEmacsタイプにするのは、ほかのキーバインドもEmacs風になってしまうので、
やめたいです。
よろしくお願いします
0869デフォルトの名無しさん
2009/02/08(日) 20:29:42「VSのやり方に合わせよう」と考えるんだ。
みんなそうしているよ。
0870デフォルトの名無しさん
2009/02/08(日) 20:30:130871デフォルトの名無しさん
2009/02/08(日) 20:36:23どうやるんスか?
0872デフォルトの名無しさん
2009/02/08(日) 21:37:140873デフォルトの名無しさん
2009/02/08(日) 21:51:12ユーザー設定のコマンドに全部設定あるだろ。
EMACSでやってる欲しい設定だけ拾ってキーに設定するんだよ
0874デフォルトの名無しさん
2009/02/08(日) 22:24:540875デフォルトの名無しさん
2009/02/09(月) 00:08:29VC6.0のFormViewで色々実装しています。
ドキュメントクラスのSerialize関数がメニューの[開く][上書き保存][保存]
からしか呼び出されません。
上記のものを消してしまい、後で追加したいのですが何も考えずに追加すると
Serialize関数が呼び出されません。一見[開く]などとたの項目とでは特に
違いがなさそうなのですがSerialize関数を呼び出すにはどうすればよいのでしょうか。
0876デフォルトの名無しさん
2009/02/09(月) 09:55:030877デフォルトの名無しさん
2009/02/09(月) 09:58:45それでわからなかったら、Serializeにブレークポイント置いておいて
止まったら呼び出し履歴見てみれば。
0878デフォルトの名無しさん
2009/02/12(木) 15:54:51元のダイアログをAとし、別のダイアログBを作成し、AからBにDoModalを行った後、
Bのダイアログのリストビューのアイテムをダブルクリックした時に、
Aのダイアログにもどり、Aにあるスタティックテキストをそのダブルクリックされたアイテムの
名前に変更したいのですが非常に苦戦しております、、
自分が考えていたのはアイテムがダブルクリックされたときに、
アイテムをグローバル変数に突っ込んで CDialog::OnOK();を実行し
元のダイアログに戻った時にデータを突っ込んでUpdateDataをかけようと思っていたのですが、
CDialog::OnOK();で元のダイアログが閉じられたあとにどこに行っているのかがさっぱりで
処理を突っ込めませんでした。
CDialog::OnOK();の後どこにいくのか、また他になにか良い方法はないか
よろしくおねがいします。
0879デフォルトの名無しさん
2009/02/12(木) 16:15:37Bのパブリックメンバーにしておいて、DoModalがOK返してきたら
AからBのそのメンバー見ればいいじゃんかよ。
0880デフォルトの名無しさん
2009/02/12(木) 16:40:04あー、言われて見直して10分悩んで見直したら出来ました。
全然頭が回ってないですね自分。
ありがとうございました。助かりました。
0881デフォルトの名無しさん
2009/02/13(金) 01:53:54出力が出ません。どうすれば表示されますか?
0882デフォルトの名無しさん
2009/02/13(金) 02:15:570883デフォルトの名無しさん
2009/02/13(金) 02:42:29windowsアプリケーションを選ぶときは、どうすればいいですか?
0884デフォルトの名無しさん
2009/02/13(金) 04:15:210885デフォルトの名無しさん
2009/02/13(金) 05:44:000886デフォルトの名無しさん
2009/02/13(金) 10:33:06先程のプログラムでAからBにDoModalしたのちに、BのDoDataExchangeの最後に、
thread_param param;
param.instance = this;
param.pParam = 0;
m_Thread = AfxBeginThread(thread_entry,¶m,THREAD_PRIORITY_NORMAL);
と実行してスレッドを作成しようとするとエラーが出てプログラムが強制終了してしまいます。
ボタンにして画面が出た後に実行すると出来るのですが、画面に入った後に自動的に実行したいのですが、
どのようしたらよいでしょうか?
0887デフォルトの名無しさん
2009/02/13(金) 12:24:08スレッドにローカル変数のアドレス渡してるのがマズい。
作成されたスレッド側がparamを参照しようとした時に
スレッドを作成した側が既にスコープを抜けてparamが破棄されてる可能性がある。
0888デフォルトの名無しさん
2009/02/13(金) 13:33:46できました!
的確なご指摘ありがとうございました!
0889デフォルトの名無しさん
2009/02/14(土) 12:21:070890デフォルトの名無しさん
2009/02/14(土) 14:55:38Windoes XP Pro SP3
C++/CLI使用
親ウィンドウで画像ファイルを指定すると、MDIの子ウィンドウで画像を読み込んで表示し、親ウィンドウのズームイン/ズームアウトボタン(またはメニュー)でアクティブな子ウィンドウの画像をウィンドウごと大きくしたり小さくしたりするプログラムを作りました。
子ウィンドウの作成・イメージ読み込み・ズーム処理などを行うクラスと、そのウィンドウをコレクションで複数保持するクラスを作り、クラスライブラリとして作成し、それを親ウィンドウのFormから呼び出す形でプログラミングしました。
複数の画像読み込み、複数の子ウィンドウ表示、ズームイン/ズームアウトなどの処理は正常に動作しています。
この親ウィンドウのメニューに、表示されている複数の子ウィンドウのリストが表示される(一般的なウィンドウメニュー)を追加しました。
方法は簡単で、menuStrip1のMdiWindowListItemプロパティにウィンドウメニューのオブジェクトを代入するだけです(開発環境のプロパティウィンドウから設定しました)。
これも正常に動作して、コードを追加しなくてもウィンドウメニューに画像ファイルを読み込んだ複数の子ウィンドウのタイトルが、メニューに表示されました。
次に続く・・・
0891890
2009/02/14(土) 14:56:43子ウィンドウのウィンドウタイトルには、画像のファイル名とズーム倍率が表示されるように作りました。
例:
1つ目の子ウィンドウ「img1001.jpg / 100%」
2つ目の子ウィンドウ「img1002.jpg / 100%」
親ウィンドウのズームイン/ズームアウトボタンを押すと、画像の大きさが変わると同時に、タイトルの倍率の数値も変わります。
例:
1つ目の子ウィンドウをズームインした場合
「img1001.jpg / 120%」
ところが、この状態で親ウィンドウのウィンドウメニューをドロップダウンさせると、ズームインさせる前の状態で表示されてしまいます。
ウィンドウ(W)
1 img1001.jpg / 100%
2 img1002.jpg / 100%
つまり、子ウィンドウのタイトルを変更させても、ウィンドウメニューには反映されません。
しかし、アクティブウィンドウを変えると(別の子ウィンドウをクリックして全面に出すと)反映されます。
例:2つ目の子ウィンドウをクリックした後
ウィンドウ(W)
1 img1001.jpg / 120%
1 img1002.jpg / 100%
やりたいこと:
ズームイン/ズームアウトボタンを押した直後にウィンドウメニューを表示させても、そのウィンドウのタイトルの変更をすぐに反映させたい。
どなたかご教授お願いします。
0892デフォルトの名無しさん
2009/02/14(土) 15:09:19Microsoft Visual Stdio2008
c++ Windowsフォームアプリケーション
textBox1,textBox2,button1を設置して
button1を押すとBox1のひらがなはローマ字に、ローマ字はひらがなに変換して
Box2に入れるようにしたいのですが、ひらがなからローマ字への変換ができません。
自分なりに考えたプログラムを張るのでアドバイスや、
もっと効率のいい方法がありましたら教えていただけると幸いです。
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^str1 = textBox1->Text;
String^str2;
int len,i;
len = textBox1->Text->Length;
for(i=0;len>i;i++){
if(str1[i]=='a'){
str2=str2+"あ";
}
else if(str1[i]=='i'){
str2=str2+"い";
}
else if(str1[i]=='u'){
str2=str2+"う";
////////////////////略/////////////////////
}
textBox2->Text = str2;
}
0893デフォルトの名無しさん
2009/02/14(土) 19:05:480894デフォルトの名無しさん
2009/02/14(土) 19:17:18分かりにくくてすいません////略////の部分で上記以外のローマ字からひらがなへの
変換(la li lu kya kyu kyoなど)は終わっています
数字や漢字は変換せずに追加されるようになています
0895デフォルトの名無しさん
2009/02/14(土) 19:37:140896デフォルトの名無しさん
2009/02/14(土) 19:40:280897デフォルトの名無しさん
2009/02/14(土) 19:53:50はい、「yotto」→「よっと」などですよね?
「ん」も母音か子音かの前かで「nn」と「n」で使い分けているので大丈夫です。
if(str1[i]=='あ')ではif文の中の処理に入れないのでひらがなからローマ字への変換ができないんです、
どうしたらどんなひらがなかによって判断できるようになりますか?
0898デフォルトの名無しさん
2009/02/14(土) 20:16:52偉大なる祖国のFEPだと、っっっっっっwってなる。
0899デフォルトの名無しさん
2009/02/14(土) 20:18:20str1[i] == L'あ'でできると思う。
0900デフォルトの名無しさん
2009/02/14(土) 20:29:48なるほど!!おかげさまで無事できました、ありがとうございます。
0901デフォルトの名無しさん
2009/02/15(日) 09:21:53Source Filesの隣にあるResource Filesというフォルダの下のHoge.txtファイルを
オープンしたいのですが、
FileOpenFunc(_T("..\\Resource Files\\Hoge.txt"));
と書いてもファイルが見つかりません。どう書けばよいですか?
0902デフォルトの名無しさん
2009/02/15(日) 11:52:480903デフォルトの名無しさん
2009/02/15(日) 11:58:07たしかファイルダイアログを呼び出すたびにホイホイかわってすっげーぷっつんくる仕様だった希ガス
アクセスするときには必ずフルパス直してアクセスしないとつながんねーとかアリガチ?
0904デフォルトの名無しさん
2009/02/15(日) 12:07:190905デフォルトの名無しさん
2009/02/15(日) 12:31:12それとShlwApiとかそれっぽい名前の関数群を使えばいいかもしれない気がしないでもない。
0906デフォルトの名無しさん
2009/02/15(日) 19:58:59CreateWindowとRegisterClassって1個にまとめちゃえばいいような気がする。
0907デフォルトの名無しさん
2009/02/15(日) 20:04:11なんかはじめのメインウィンドウ作るときぐらいしか使わない記憶あるけど
俺のきのせい?
0908デフォルトの名無しさん
2009/02/15(日) 20:19:56次に、CreateWindowで、「こういうウインドウ作ります。スタイルはUSERです」ってWindowsに通知する。
CreateWindowで、STATIC とか、EDIT って指定するだろ?アレは、そういうスタイルがWindowsが持ってるわけだ。
RegisterClassで指定してるのは、これから使う、ユーザ独自のスタイル。
んなもんWindowsのしったこっちゃないから、あらかじめ登録しちゃうわけ。
CreateWindowで、RegisterClassで登録した名前を指定するのはそういうわけ。登録して、使う。
0909デフォルトの名無しさん
2009/02/15(日) 21:12:57だから別々に分かれている。
0910デフォルトの名無しさん
2009/02/16(月) 01:53:46CreateWindowはウィンドウの見た目に関する事を指定する
0911初心者
2009/02/16(月) 02:23:14ほんとに、初心者ですみません。
0912デフォルトの名無しさん
2009/02/16(月) 02:36:41そんで、そのボタンをダブルクリックする。
生成されたコードの中に処理を書く
0913初心者
2009/02/16(月) 02:50:390914デフォルトの名無しさん
2009/02/16(月) 02:56:20ボタンをはっつけて、それをダブルクリックするだけで勝手にコードが自動生成される。
んで、そこに書き込む。
WinAppの場合は、ウインドプロシージャでやる。
詳しくはここを読め。
http://homepage2.nifty.com/c_lang/sdk/sdk_28.htm
0915初心者
2009/02/16(月) 03:07:57if型で、「botton1をクリックしたときに、〜する」というコードです。
ほんとに、すみません
0916デフォルトの名無しさん
2009/02/16(月) 03:10:020917初心者
2009/02/16(月) 03:14:22それぞれ動き方が違うというプログラムを作りたいです。
0918デフォルトの名無しさん
2009/02/16(月) 03:32:01まずダイアログベースアプリなのか、SDIアプリケーションなのか、Win32アプリケーションなのか、
それ以外なのかちゃんと書こうぜ。
0919デフォルトの名無しさん
2009/02/16(月) 03:44:40もしかしてこんなかんじかな?
IDC_RADIO1、2はラジオボタンで、スタイルがプッシュボタン型。
で、通常のボタン(ボタン3)を押した場合の処理が以下。(名前はOnBnClickedButton1だけどな)
void CzzzDlg::OnBnClickedButton1()
{
// TODO : ここにコントロール通知ハンドラ コードを追加します。
if( ((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck() == TRUE )
{
MessageBox("Radio1");
}
else if( ((CButton *)GetDlgItem(IDC_RADIO2))->GetCheck() == TRUE )
{
MessageBox("Radio2");
}
}
0920デフォルトの名無しさん
2009/02/16(月) 03:47:10== TRUEではなくて、== BST_CHECKED だな。
0921初心者
2009/02/16(月) 06:50:13>>919
ありがとうございました!!
0922デフォルトの名無しさん
2009/02/16(月) 10:01:49方法が分かりません ><
0923デフォルトの名無しさん
2009/02/16(月) 10:30:440924デフォルトの名無しさん
2009/02/16(月) 10:32:330925デフォルトの名無しさん
2009/02/16(月) 11:07:02すげぇ、、、
説明がすぅっと頭に入ってきました。
Win32の達人の方ですね。
0926デフォルトの名無しさん
2009/02/16(月) 11:07:29でメンバー持っておいて、
this->textBox = gcnew array<System::Windows::Forms::TextBox^>(2);
してから
this->textBox[0] = textBox1;
this->textBox[1] = textBox2;
するとか。
0927デフォルトの名無しさん
2009/02/16(月) 11:17:47うーむ。なるほど
ここに、変数を使うのは、あまり一般的ではないですか?
0928デフォルトの名無しさん
2009/02/16(月) 11:25:13あ。ありがとうございました!
0929デフォルトの名無しさん
2009/02/16(月) 17:37:54Windoes XP Pro SP3
を使用しています。
グローバルに構造体を作って、クラス内でexturnをしようすると、
exturnのところでエラーが出て怒られてしまいます。
グローバルでの定義部分ではエラーは出てないものの、ちゃんと出来ているかも正直怪しいかもしれません。
何か良い方法は無いでしょうか?
0930デフォルトの名無しさん
2009/02/16(月) 17:38:16Windoes XP Pro SP3
を使用しています。
グローバルに構造体を作って、クラス内でexturnをしようすると、
exturnのところでエラーが出て怒られてしまいます。
グローバルでの定義部分ではエラーは出てないものの、ちゃんと出来ているかも正直怪しいかもしれません。
何か良い方法は無いでしょうか?
0931デフォルトの名無しさん
2009/02/16(月) 17:39:040932デフォルトの名無しさん
2009/02/16(月) 17:41:01言いたいことがよくわからん。
どんなコードなんだ?
0933デフォルトの名無しさん
2009/02/16(月) 18:10:00すいません、externでした。
グローバルに
struct st{
char id[ID_SIZE];
char name[NAME_SIZE];
struct st *next;
};
と定義して、それをクラスAやクラスBで
extern struct st{
char id[ID_SIZE];
char name[NAME_SIZE];
struct st *next;
};
とすると、まず「空白の宣言が見つかりました。」というエラーが出て止まってしまいます。
拙い説明で申し訳ないです。
0934デフォルトの名無しさん
2009/02/16(月) 18:23:03何がやりたいんだ。
構造体の定義と、変数の宣言とその変数のextern宣言が必要だが、そもそも変数(実体)がない。
0935デフォルトの名無しさん
2009/02/16(月) 18:29:52でいいんじゃないの?何がしたいのかまったくもってわからない。
0936デフォルトの名無しさん
2009/02/16(月) 18:30:270937デフォルトの名無しさん
2009/02/16(月) 19:10:08定義、宣言、参照について全く理解していない気がします。
0938デフォルトの名無しさん
2009/02/16(月) 19:10:14さらに、実体もグローバルに定義しています。
実体に値が入っていて、
その値をスレッド内でグローバルで定義した実体を通して
参照したいです。
グローバル変数を使う知識として、
externを付けることは知っているのですが、
そもそも、スレッド内からグローバルに定義した
構造体にアクセスできるかどうかわかりません。
何か方法がありましたら、教えてください。
>>935
やってみたのですが、そのようなヘッダはありませんと怒られてしまいました。
0939デフォルトの名無しさん
2009/02/16(月) 19:14:55ご返事いただきありがとうございます。
>>937
結構ぐぐったのですが私の理解力が足らず申し訳ございません・・・
0940935
2009/02/16(月) 19:15:48struct st { ... };
extern st g_st;
// FILE : st.cpp
#incluede "st.h"
st g_st;
// FILE : a.h
#include "st.h"
class A { ... };
ってことね。とりあえず何を参考に勉強してるのかしりたい。
0941デフォルトの名無しさん
2009/02/16(月) 20:08:02Windowsファームアプリケーションを作成したのですが、ほかのPCで動作しません。
「このアプリケーションの構成が正しく・・・」と表示されます。
リリースコンパイルもしましたが動きません。
「プロパティ」の「C++」の「コード生成」の「ランタイムライブラリ」を「マルチスレッド」にすると、コンパイルすることができません。
いったいどうすれば動くのでしょうか?
ほかのPCに、ランタイムを入れない方法を探しています。
お願いします。
0942デフォルトの名無しさん
2009/02/16(月) 20:34:19×ファーム
○フォーム
純粋なWin32アプリや標準ライブラリだけを使うコンソールアプリなら
ライブラリを静的にリンクすればよいと思うけど、
Windowsフォームアプリケーションでランライムに依存しないのは無理じゃないの?
0943デフォルトの名無しさん
2009/02/16(月) 21:04:01C++/CLIだったりして・・・。そのPC、.netframework入れてないとかw
0944デフォルトの名無しさん
2009/02/17(火) 07:42:27>ランタイムを入れない方法を探しています。
無理
フォームアプリはランタイム(.NET Framwork)必須
0945デフォルトの名無しさん
2009/02/17(火) 11:57:12どうすれば読み込めるようになりますか?
char fname[] = "C:\\テスト\\test.txt";
ifstream fin;
fin.open(fname);
char c;
while (fin.get(c)) {
printf("%c", c);
}
fin.close();
if (getch()) return 0;
0946デフォルトの名無しさん
2009/02/17(火) 12:42:130947デフォルトの名無しさん
2009/02/17(火) 13:04:17ifstream fin;
こうすれば読み込めるようになりました、ありがとうございます
0948デフォルトの名無しさん
2009/02/17(火) 18:05:29値がついてる感じだな
0949デフォルトの名無しさん
2009/02/18(水) 00:28:05オブジェクト->プロパティ
オブジェクト.プロパティ
という理解でいいんでしょうか?
0950デフォルトの名無しさん
2009/02/18(水) 00:29:580951デフォルトの名無しさん
2009/02/18(水) 00:32:440952デフォルトの名無しさん
2009/02/18(水) 15:46:47親読んでこい
説教してやる
0953デフォルトの名無しさん
2009/02/18(水) 17:59:43int WINAPI WinMain( HINSTANCE hi, HINSTANCE hip, LPSTR sc, int ic )
{
MSG Msg;
char *str;
memset( &Msg, 0, sizeof( MSG ) );
return ( int )Msg.wParam;
}
strが0xcccccccc<不適切なPtr>となるのはなぜですか。
C++ならstring使えっていう事なんですか?
0954デフォルトの名無しさん
2009/02/18(水) 18:01:33そのstrは単に初期化してないポインタだからそのままじゃ使えないだろう。
0955デフォルトの名無しさん
2009/02/18(水) 18:02:27デバッグ時に0xccで埋められてるだけ。
実際にアプリケーションを動かすと、不定値。
char *str = NULL;
とかで初期化する。
0956デフォルトの名無しさん
2009/02/18(水) 18:10:20newしてあげれば不適切Ptrではなくなるんですね。
ありがとうございます。
あのぉ。。。もひとつ疑問がでちゃったんですが、いいですか?
newして例外出てんのに期待通りの動作してるのはなぜですか
これが解決できたら1年ぐらいROMしときます。
0957デフォルトの名無しさん
2009/02/18(水) 18:26:16具体的にコード出してこういう例外が出たと書いてくれないとわからんよ。
0958デフォルトの名無しさん
2009/02/18(水) 18:35:51>newしてあげれば不適切Ptrではなくなるんですね。
なんもわかってねぇじゃん
まず、入門書と紙と鉛筆用意して全文書き取りからはじめたほうがいいぞ
0959デフォルトの名無しさん
2009/02/18(水) 19:22:49ビルドすると、
fatal error C1083: include ファイルを開けません。'afxwin.h': No such file or directory e:\visual studio 2005\projects\キャプチャ\irsystem\stdafx.h 43
というエラーが出ます。
環境は
Visual Studio 2005 Professional Edition sp1
OS:Vistaです。
Visual Stadio Professionalかつフルインストールしているので、
MFCが入っているはずなのですがどうしても動きません。
どなたかわかる方いらっしゃいますでしょうか。
わかる方がいましたら教えて下さい。
0960デフォルトの名無しさん
2009/02/18(水) 19:42:35うーん、なんかVC2008eeででるんと同じようなエラー内容だなぁ・・・
なんか設定する必要あんのかな?
0961デフォルトの名無しさん
2009/02/18(水) 19:43:35それで見つからないならインクルードパスの設定すればいい
0962デフォルトの名無しさん
2009/02/18(水) 19:52:04「インクルード ファイル」の設定内容をチェック
バージョンの違いでちょっと文言が違う鴨試練
0963デフォルトの名無しさん
2009/02/18(水) 20:03:24これかなぁ・・・なんか違う?
0964デフォルトの名無しさん
2009/02/18(水) 20:25:58サブディレクトリのlibファイルは、下記のようにはリンクできないのですか?
OK #pragma comment(lib, "mylib.lib")
NG #pragma comment(lib, "lib/mylib2.lib")
0965デフォルトの名無しさん
2009/02/18(水) 21:48:110966デフォルトの名無しさん
2009/02/18(水) 22:07:100967964
2009/02/18(水) 23:03:19もちろんディレクトリ区切りを\\にしてもだめでした。
それにフルパスで記述したときに/で通るので、多分原因はそこではないと思います。
#pragma commentでライブラリファイルを指定するときに、サブディレクトリ内もちゃんと見るんですよね。
とりあえずそこの確認がほしいのです。
0968デフォルトの名無しさん
2009/02/18(水) 23:24:34ヘッダ読んでpraguma云々の記述はlibファイルなんかねーとこ指してるけど動いてるw
って状況やってみそ
ヘッダとlibファイルのプロジェクトへの追加な
0969デフォルトの名無しさん
2009/02/18(水) 23:40:56とかでもダメぽ?
0970964
2009/02/19(木) 00:17:33C:\MyLibrary ←VC++ディレクトリ-ライブラリとインクルードの一番上で指定。
mylib.lib
lib
mylib.h (#include <lib/mylib.h>は失敗しない)
mylib.lib (上では区別のためにmylib2.libと書いたけど、コピーしたもの)
プロジェクト-リンカ-追加の依存ファイルで指定しても
1>LINK : fatal error LNK1104: ファイル 'lib/mylib.lib' を開くことができません。
と出ます。
./lib/mylib.libも同様にpragma でも依存ファイルの指定でも失敗しますorz
0971デフォルトの名無しさん
2009/02/19(木) 01:19:58わけじゃないだろーな
0972デフォルトの名無しさん
2009/02/19(木) 01:23:570973デフォルトの名無しさん
2009/02/19(木) 02:03:28// マイドキュメント-VS2008-Projects/Test/Test
// = プロジェクトディレクトリ
#include <lib/mylib.h> // OK
#pragma comment(lib, "lib/mylib.lib") // NG
//#pragma comment(lib, "C:/MyLib/lib/mylib.lib") // OK
//#pragma comment(lib, "mylib.lib") // OKだけど違うファイル
int main()
{
const int ret = test_func(2);
return 0;
}
// mylib.h
#pragma once
int test_func(int val);
//mylib.cpp
#include "mylib.h"
int test_func(int val) { return val * 100; }
改行を削るとこのような感じになります。
コンパイルすると970のエラーメッセージが出ます。。。
もう遅いし、解決できそうにないのであきらめてフルパスで書くことにします。
ありがとうございました。
0974デフォルトの名無しさん
2009/02/19(木) 02:41:480975デフォルトの名無しさん
2009/02/19(木) 03:16:25したら、cpp にゃ、ヘッダをインクルードするだけで済むだろーが。
じゃないと、他のプロジェクトで mylib.h を使いまわす時に、lib をリンクし忘れるのがオチだ。
0976デフォルトの名無しさん
2009/02/19(木) 05:36:29あるよ。
以上。
↓次の方どうぞ
0977デフォルトの名無しさん
2009/02/19(木) 11:22:48このコードの真ん中って、「this->」いらなくない?
0978デフォルトの名無しさん
2009/02/19(木) 11:24:50TextBoxと紛らわしかったので、説明上念のためつけただけ。
0979デフォルトの名無しさん
2009/02/19(木) 11:28:08いや、エラーになるでしょ
0980デフォルトの名無しさん
2009/02/19(木) 11:36:27array<System::Windows::Forms::TextBox^>^ textBox;
↑
ひょっとして、これだけ、違うところに記述するんですか?
0981デフォルトの名無しさん
2009/02/19(木) 11:39:54まあそれで済むならそれでいいけど。
0982デフォルトの名無しさん
2009/02/19(木) 11:50:06すみません。いけました。
ありがとうございます
0983デフォルトの名無しさん
2009/02/19(木) 20:52:200984デフォルトの名無しさん
2009/02/19(木) 22:37:44いいオカズがあったら教えてくださいm(_ _)m
472 名前: デフォルトの名無しさん 投稿日: 2009/02/17(火)23:51:34
>>471
http://images.google.co.jp/images?hl=ja&q=%E3%83%9E%E3%83%84%E3%82%B3%E3%83%87%E3%83%A9%E3%83%83%E3%82%AF%E3%82%B9&lr=&um=1&ie=UTF-8&sa=N&tab=wi
473 名前: デフォルトの名無しさん [sage] 投稿日: 2009/02/18(水) 00:13:42
>>472
すみません。いけました。
ありがとうございます
0985デフォルトの名無しさん
2009/02/19(木) 23:21:11質問に対して、一切答えられないものもあると
それくらい難しいものなんだなぁ・・・
0986デフォルトの名無しさん
2009/02/19(木) 23:24:450987デフォルトの名無しさん
2009/02/20(金) 00:06:45void prefunc(INTF intf);
bool func(INTF intf , string str, RECT rect);
void postfunc(HINTF intf);
func(INTF intf, string str, RECT rect) {
prefunc(intf);
intf->func(str, rect);
postfunc(intf);
}
void prefunc2(INTF intf);
bool func2(INTF intf, DWORD count, RECT rect, DWORD flags, DWORD color);
void postfunc(INTF intf);
といった関数があってprefunc,func,postfuncでセットになっています。
funcの第二引数以降の型や数は異なっています。
funcの処理の流れはどのセットでも一緒で類似している点が多いのでこれらの関数をクラス化したいと考えました。
prefunc,postfuncは小クラスで独自の処理を行うため↓には書いてませんがオーバーライドして実装しようとおもってます
class CParent {
public:
virtual void prefunc(HANDLE handle);
virtual bool func(HANDLE handle, ...);
virtual void postfunc(HANDLE handle);
};
class CChild : public CParent {
public
virtual bool func(HANDLE handle, ...);
};
のように可変引数を使って動くかどうかテストしてみて動いたんですが
可変引数を使ってオーバーライドする設計の仕方ってのは出来上がったソースの可読性も低くなるしこのまま実装していいのか悩んでいます
もっと良い方法はないでしょうか。
0988デフォルトの名無しさん
2009/02/20(金) 07:28:220989デフォルトの名無しさん
2009/02/20(金) 11:06:070990デフォルトの名無しさん
2009/02/20(金) 11:08:53この手法を使えば、for文でテキストボックスから
値を収集できるんですね。
すごいです><
0991デフォルトの名無しさん
2009/02/20(金) 15:13:18a = this->textBox1->Text; でエラーが出るのを、
if(textBox1->Text != L""){a = this->textBox1->Text;}
じゃない方法でエラーが出ないようにできないですか?
0992デフォルトの名無しさん
2009/02/20(金) 22:04:190993デフォルトの名無しさん
2009/02/20(金) 23:27:300994デフォルトの名無しさん
2009/02/21(土) 00:34:22VisualC++ 6.0
Windows XP
SDIで、モードレスダイアログを生成しているのですが、
このダイアログからDocumentにアクセスの仕方が分かりません。
ご教授お願いします。
0995デフォルトの名無しさん
2009/02/21(土) 01:37:27デフォルトの警告レベルを最大(4)に指定するにはどうすればよいですか?
0996デフォルトの名無しさん
2009/02/21(土) 01:46:450997デフォルトの名無しさん
2009/02/21(土) 01:54:08MFC なら MFC のスレで聴きな。このスレもう終わるし。
0998デフォルトの名無しさん
2009/02/21(土) 07:07:53そのモードレスダイアログが誰の子か知らないけど
親もしくは親の知り合いがDocumentにアクセスできるはず
自分ひとりで全部やろうとしないで人間関係を大切にしよう
0999デフォルトの名無しさん
2009/02/21(土) 09:36:521000デフォルトの名無しさん
2009/02/21(土) 09:37:5710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。