★初心者にVisual C++を教えるスレ★ Part36
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/05/16(日) 01:06:22お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
【過去スレ】
Part35 ttp://pc12.2ch.net/test/read.cgi/tech/1256645713/
Part34 ttp://pc12.2ch.net/test/read.cgi/tech/1245382769/
Part33 ttp://pc12.2ch.net/test/read.cgi/tech/1235292263/
Part32 ttp://pc11.2ch.net/test/read.cgi/tech/1225422971/
Part31 ttp://pc11.2ch.net/test/read.cgi/tech/1217494948/
0002デフォルトの名無しさん
2010/05/16(日) 01:47:52■MFC相談室 mfc21d.dll■
http://pc12.2ch.net/test/read.cgi/tech/1250919279/
Win32API質問箱 Build82
http://pc12.2ch.net/test/read.cgi/tech/1253699773/
【C++】 DirectX初心者質問スレ Part26 【C】
http://pc12.2ch.net/test/read.cgi/tech/1256403984/
C言語なら俺に聞け(入門篇) Part 54
http://pc12.2ch.net/test/read.cgi/tech/1254829314/
C++相談室 part74
http://pc12.2ch.net/test/read.cgi/tech/1256397778/
C/C++の宿題片付けます 131代目
http://pc12.2ch.net/test/read.cgi/tech/1255709298/
【初心者歓迎】C/C++室 Ver.69【環境依存OK】
http://pc12.2ch.net/test/read.cgi/tech/1256022655/
0003デフォルトの名無しさん
2010/05/16(日) 01:50:08MSDN ライブラリ
http://msdn.microsoft.com/ja-jp/library/default.aspx
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
0004デフォルトの名無しさん
2010/05/17(月) 01:09:300005デフォルトの名無しさん
2010/05/17(月) 01:59:50main()
{
printf("コマノウエノゴマ");
}
というソースコードをビルドするとエラーが起こるのですが
この本で使われているQuick C Ver.2.0のC言語は
Visual C++ 2010 Expressの物とは全くの別物なんですか?
ttp://www.odnir.com/cgi/src/nup47890.jpg
0006デフォルトの名無しさん
2010/05/17(月) 02:18:22それをVisual C++ 2010 Express上でやってみた
ttp://loda.jp/_pluto_/?id=12.exe
↑の実行ファイルをコマンドプロンプトにドラッグ&ドロップしてEnterキー押せば普通に終わると思うが・・・
0007デフォルトの名無しさん
2010/05/17(月) 08:36:02どんなエラー?それを書かないとわからない。
0008デフォルトの名無しさん
2010/05/18(火) 14:24:481>DXUT.obj : error LNK2019: 未解決の外部シンボル __imp__InitCommonControls@0 が関数 "long __stdcall DXUTInit(bool,bool,wchar_t *,bool)" (?DXUTInit@@YGJ_N0PA_W0@Z) で参照されました。
1>DXUTmisc.obj : error LNK2019: 未解決の外部シンボル _DXTraceW@20 が関数 "long __stdcall DXUTTrace(char const *,unsigned long,long,wchar_t const *,bool)" (?DXUTTrace@@YGJPBDKJPB_W_N@Z) で参照されました。
色々調べてみて以下のようにすることで一応ビルドと実行はできたのですが
#pragma comment(lib, "comctl32.lib")
#pragma comment(lib, "dxerr.lib")
そもそもこのライブラリがあるディレクトリをライブラリ ディレクトリに登録しており、そのディレクトリに該当のlibがあることも確認できました。
ただ、エラー内容からっておそらくライブラリディレクトリの設定が間違っているのではないと予想しているのですが、どこが間違っているでしょうか?
1) ソリューションエクスプローラからプロジェクトを選択
2) 表示メニュー→その他のウィンドウ→プロパティウィンドウを開く
3) プロパティページボタンを押してダイアログを開く
4) 構成プロパティ→VC++ ディレクトリ→ ライブラリディレクトリ
で設定してます。
0009デフォルトの名無しさん
2010/05/18(火) 14:31:30構成プロパティ→リンカ→入力の”追加の依存ファイルにcomctl32.lib dxerr.libを書き込んだら解決しました。
しかし、これで合っているのでしょうか?
ライブラリ一つ一つ指定するのって労力がかかりすぎると思うのですが・・・・・。
0010デフォルトの名無しさん
2010/05/18(火) 14:47:40他のコンパイラでも通るようにするためにはソースに書き込んだ方が良い。
0011デフォルトの名無しさん
2010/05/18(火) 15:13:50危険なオブジェクト知らないうちに使われないようにするためかな・・・。
ちょっと調べてみます。
とりあえず複数人での開発まで考えるとヘッダファイルにでも書いておいた方が何かと便利そうですね。
0012デフォルトの名無しさん
2010/05/21(金) 00:28:35Microsoft Searchに飛ばされるんだけどなんでなの??
一応自己解決しようと努力はしたんだけど
yahoo知恵袋で同じ質問あったけど解決方法書いてなかったんだ。
環境はWindousXPです
001312
2010/05/21(金) 00:48:35お騒がせしました
0014デフォルトの名無しさん
2010/05/21(金) 11:04:460015デフォルトの名無しさん
2010/05/24(月) 15:47:40VisualC++でマウスの名称を持って来たいだけなのですが、
何をどう定義する必要があるのかすらわかりません。
出来ましたら、VisualC++にて「Windowsフォームアプリケーション」を
サラで作成した状態で何処に何を記述するのか教えてください。
0016デフォルトの名無しさん
2010/05/24(月) 21:17:06あったら教えてください。
0017デフォルトの名無しさん
2010/05/24(月) 21:19:32http://social.msdn.microsoft.com/forums/ja-JP/categories/
0018デフォルトの名無しさん
2010/05/24(月) 21:45:58なんか以下でマウスの接続チェックは出来るらしい…。
BOOL GetSystemMetrics( SM_MOUSEPRESENT );
一応、#include "Windows.h" は定義しましたが必要なのかは良く解っていない。
じゃ、以下って何なの??? どうやって使うのでしょうか???
『Mouse クラス』 や 『MouseDevice クラス』
VisualC++ は超初心者で何を定義する必要があるのかまったく解っていません。
0019デフォルトの名無しさん
2010/05/25(火) 02:43:010020デフォルトの名無しさん
2010/05/25(火) 15:50:35『グローバル関数にアクセスするための 'this' ポインタがありません』で動きません。
これはなぜ?
// Initializes the variables to pass to the MessageBox::Show method.
String^ message = "You did not enter a server name. Cancel this operation?";
String^ caption = "No Server Name Specified";
MessageBoxButtons buttons = MessageBoxButtons::YesNo;
System::Windows::Forms::DialogResult result;
MessageBox::Show( this, message, caption, buttons );
0021デフォルトの名無しさん
2010/05/26(水) 01:06:18大雑把に言うと、「その」thisが使えるのは、Form1.hの中にあるclassの中だけ。
0022デフォルトの名無しさん
2010/05/26(水) 15:03:53VisualC++2008でテンプレート(Windowsフォームアプリケーション)を使って
新規にプロジェクトを作成した後、
「test000.cpp」内にて【CString str;】と変数を指定してみたのですが、
'CString' : 定義されていない識別子です。
で、エラーになってしまいます。
ヘッダーには「#include "Windows.h"」を指定して見たのですが、
変わりありませんでした。
MFCが何者なのかは、色んなページを参照してなんとなくは解ってきたのですが、
実際はどの様にすれば利用できるのかが良く解りません。
この辺を詳しく紹介している、ページなどありましたら合わせてお教えいただけると
ありがたいです。
0023デフォルトの名無しさん
2010/05/26(水) 16:52:23ExpressにはMFCついてないから
あきらめた方がいい
0024デフォルトの名無しさん
2010/05/26(水) 17:51:48Expressでは無いです、
Microsoft Visual Studio 2008 Professional です。
0025デフォルトの名無しさん
2010/05/26(水) 21:03:40新規プロジェクト作成時に MFC アプリケーションを選べ。
0026デフォルトの名無しさん
2010/05/26(水) 21:36:01そもそもC++言語を少しは使えるのだろうか
0027デフォルトの名無しさん
2010/05/26(水) 21:38:22MFCにてプロジェクトを作成して、まっさらなダイアログにボタン「Button1」を
作成し以下の様にしてみたのですが、今度は『MessageBox::Show』が使えなくなって
しまいました。
理由がわかりません。
void CtestDlg::OnBnClickedButton1()
{
// TODO: ここにコントロール通知ハンドラ コードを追加します。
CString str;
// MessageBox::Show("test");
}
「CString」は使える様ですが、結局『Windowsフォームアプリケーション』と
『MFCアプリケーション』の違いがわかりません。
0028デフォルトの名無しさん
2010/05/26(水) 21:53:01『Windowsフォームアプリケーション』って CLR だろ?
それは、.NET アプリケーションになる。
MessageBox::Show も .NET だ。
いろんなページを見たら、どこかに MFC での
メッセージボックスの書き方は書いてあると思う。
MessageBox("〜"); とか。
CLR は managed
MFC は ネイティブ
0029デフォルトの名無しさん
2010/05/26(水) 22:08:24> CLR は managed
> MFC は ネイティブ
と、言う事は…。
別のプラットフォームと捕らえた方が良いってことでいいですか?
ある意味別の言語みたいなんですね。
0030デフォルトの名無しさん
2010/05/26(水) 22:15:58もし、お答え頂けるなら。
CLR の『Windowsフォームアプリケーション』でプロジェクトを作成し、
デバイスの情報を取りに行きたい時に、MFCを利用したいときは、
どの様にするのがベストでしょうか?
0031デフォルトの名無しさん
2010/05/26(水) 23:59:010032デフォルトの名無しさん
2010/05/27(木) 15:24:02.NETで使う事は想定されてないと思われ
0033デフォルトの名無しさん
2010/06/05(土) 02:39:020034デフォルトの名無しさん
2010/06/05(土) 17:04:50http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/
0035デフォルトの名無しさん
2010/06/08(火) 00:01:27私はVisual C++はもちろんプログラミングについて何の知識も無いのですが、どうしても上のcppをexeに変換したいのです。
そこでVisual C++ 2010 Expressをインストールし試行錯誤してみましたが、さっぱりダメです。
(新しいプロジェクト→Win32プロジェクト→空のオブジェクト
→ソースファイルに上のcppをぶち込み、デバッグ開始→ビルド失敗)
どうすればexeファイルに変換できるのでしょうか。どなたかご教授願います。
環境はWin XP SP3です。
0036デフォルトの名無しさん
2010/06/08(火) 00:15:27それにチートなんて周りの迷惑になるからやめとけ
003735
2010/06/08(火) 00:36:02003835
2010/06/08(火) 00:54:560039デフォルトの名無しさん
2010/06/08(火) 00:56:070040デフォルトの名無しさん
2010/06/12(土) 12:14:00ガッ
0041デフォルトの名無しさん
2010/06/12(土) 19:16:59新規作成→プロジェクト
0042デフォルトの名無しさん
2010/06/13(日) 14:12:12error C2664 が出てしまいます。変換すれば良いだけなのでしょうが、
どうすれば良いかお教えください。
0043デフォルトの名無しさん
2010/06/13(日) 14:34:58char sz[50] = "hoge";
// VC++ 2008以降
#include <msclr/marshal.h>
using msclr::interop::marshal_as;
System::String^ s = marshal_as<System::String^>(sz);
// VC++ 2005
System::String^ s = gcnew System::String(sz);
0044デフォルトの名無しさん
2010/06/13(日) 15:00:21VC++2005の方で、
System::String^ s = は、文字列の入れ物と捕らえて、
gcnew System::String(sz); の方は、新しくメモリ上に(System::String)リマップし直した
との認識をして問題ないでしょうか?
VC++2008では何であんなに複雑になってるか良く解りません…。
変換用の関数を利用しているでいいのかな???
このページでしょうか??
http://msdn.microsoft.com/ja-jp/library/bb384865%28v=VS.100%29.aspx
0045デフォルトの名無しさん
2010/06/13(日) 15:11:16ただ、marshal_asはchar配列とSystem::String以外の変換にも活用できるので、
せっかくだから取り上げてみた。
0046デフォルトの名無しさん
2010/06/19(土) 18:39:44mfcのafxinet.hを使ってページの取得まではできましたが、
ユニコードへの変換の仕方がわかりません。
どうすればいいんですか?
プロジェクトはユニコードを使ってます。
CString strBuf;
while ( lpHttpFile->ReadString(strBuf) )
{
this->m_listbox.AddString((LPCTSTR)str);
}
0047デフォルトの名無しさん
2010/06/20(日) 03:35:070048デフォルトの名無しさん
2010/06/20(日) 14:42:22下記のURLに載っている1~3のプログラムをstringからmallocで動的なメモリの割り当てにしたいのですがどこをどのように変えれば実現できるのでしょうか?
http://www.ogis-ri.co.jp/otc/hiroba/technical/newface/index.html
0049デフォルトの名無しさん
2010/06/20(日) 16:28:09それが、ReadStringの時点で漢字ばかりの文字列に化けてます。
lpHttpFile->Readを使ってchar配列に入れたら日本語はだめだけど
読める文字列にはなりました。
0050デフォルトの名無しさん
2010/06/20(日) 22:00:12LOGFONT lf = {fontsize, 0, 0, 0, fontWidth, 0, 0, 0, SHIFTJIS_CHARSET, OUT_TT_ONLY_PRECIS,
CLIP_DEFAULT_PRECIS, PROOF_QUALITY, FIXED_PITCH | FF_MODERN,fontName};
をコンパイルすると
error C2440: '初期化中' : 'TCHAR *' から 'CHAR' に変換できません。
この変換が可能なコンテキストはありません。
と表示されてコンパイルできません。
fontNameに文字の入った変数を渡すにはどうすればいいんでしょうか。
fontNameに直接_T("富士ポップ")と入れれば実行できます。
環境はvisal studio2008を使用しています。
005150
2010/06/20(日) 23:35:33構造体の初期化を使わず
strcpy(lf.lfFaceName,fontName);
にしたら出来ました。
0052デフォルトの名無しさん
2010/06/21(月) 16:58:53わたしは aaa( ){aaaaaaa}となったほうがわかりやすいように
思うのですが。
0053デフォルトの名無しさん
2010/06/21(月) 17:04:15慣れの問題です。
ちなみに僕は
aaa()
{
aaaaaa
}
と書いています。
0054デフォルトの名無しさん
2010/06/21(月) 17:09:28{aaaaaaaa}のように書いていてはだめということでは
ないのですね。
0055デフォルトの名無しさん
2010/06/21(月) 17:15:50コンパイルが通れば何でもいいというのであればそれでいいが
大抵はいくつかの主流の書き方に合わせるか、職場のコーディング規約に合わせる
0056デフォルトの名無しさん
2010/06/21(月) 17:22:03書き方を考えたのか解せないのです。
わざわざ見た目を難しくしているような気がします。
私のような初心者だと括弧を{を前に}を後ろに
書き換えたほうがプログラムの流れがよく理解
出来るような気がします。
0057デフォルトの名無しさん
2010/06/21(月) 17:26:110058デフォルトの名無しさん
2010/06/22(火) 23:43:520059デフォルトの名無しさん
2010/06/23(水) 00:10:14しかもC++/CLIよりC#がいい
仕事でMFC使う予定があるなら別だが
006058
2010/06/23(水) 00:12:34ずさー^−^
C#はある程度できます。。VC++スレの人にまでそういわれるなら、やめます。。
1つの言語覚えるのも結構時間かかりますもんね。ありがとう。
0061デフォルトの名無しさん
2010/06/23(水) 00:17:22本当に高速化したい時だけでいいよ
0062デフォルトの名無しさん
2010/06/24(木) 13:06:05あれを表示させるにはどうやったらいいのですかね?
0063デフォルトの名無しさん
2010/06/24(木) 13:55:23SHFileOperation
0064デフォルトの名無しさん
2010/06/24(木) 14:17:41構造体ぶっ込んで・・・と
0065デフォルトの名無しさん
2010/06/24(木) 15:32:160066デフォルトの名無しさん
2010/06/24(木) 18:13:260067デフォルトの名無しさん
2010/06/25(金) 01:53:230068デフォルトの名無しさん
2010/06/25(金) 13:58:59シュートしなきゃ点は入らない
買わなきゃ宝くじは当たらない
0069デフォルトの名無しさん
2010/06/30(水) 07:11:38VCを設定することは可能でしょうか?
x64ではなくSSE2が使用可能なx86環境での実行を前提にしています。
0070デフォルトの名無しさん
2010/07/01(木) 20:19:28SQL Serverとも通信しなければならん。
VCからADO使えるのは分かってるんだけど、C#のが慣れる俺にアドバイスくれまいか。
今どきVCからADOなんて使いたくねー!って言ったら、使ってる人に怒られるよなw
DB周りの処理はC#で作ってライブラリにして、Cから呼ぶのって大変かな。
0071デフォルトの名無しさん
2010/07/01(木) 20:31:210072デフォルトの名無しさん
2010/07/01(木) 20:46:42VC初心者ですまん。
Webサービス化するのは出来るんだけど、Cから呼び出す方法がさっぱりだわ。
コマンドラインオプションに/MT付けてると/clr付けられんみたいなんだが、マネージドコード使えねって事なんかな。
フックするためには/MTは外せないっぽい。
0073デフォルトの名無しさん
2010/07/02(金) 17:50:00わかった
0074デフォルトの名無しさん
2010/07/03(土) 17:29:17C#部分はEXEとして作って、フックDLLとはプロセス間通信するのが一番楽だと思う。
あと、フックDLLは/MT必須というのは誤解。
ただ、フックDLLとそこから読み込むDLLでマネージコードを使うのはお勧めしない。
CLR 1.0〜2.0は1プロセス内に共存できない(4で可能になったけど)とか、
DLLのアンロードをどうすんのとか、
Windowsと.NETの暗黒面に次々と出くわすだろうことが明らかなので。
0075デフォルトの名無しさん
2010/07/03(土) 19:56:53むちゃくちゃ遅れましたがありがとうございます。
0076デフォルトの名無しさん
2010/07/04(日) 03:12:16鳴らすことができていましたが、Windows 7 64bitでは外部スピーカー
からしか音がしなくなりました。Windows 7 Ultimate 64bitでビープ音を
鳴らすにはどうしたらいいでしょうか?
開発環境は VC++8.0 です。
0077デフォルトの名無しさん
2010/07/04(日) 03:38:287で行われた変更の一つ
http://blogs.msdn.com/b/larryosterman/archive/2010/01/04/what-s-up-with-the-beep-driver-in-windows-7.aspx
諦めろ
0078デフォルトの名無しさん
2010/07/04(日) 19:22:53レスありがとう。
VB6でCOM作って、import使って呼び出せそうだわ。
プロセス間通信もやったことないんだけど、簡単なんかな?
exe作って引数でデータ渡すのもありだね。
投げっぱなしジャーマンで、成否だけ分かればいい場合だけ
だけど。
0079デフォルトの名無しさん
2010/07/05(月) 12:26:340080デフォルトの名無しさん
2010/07/06(火) 18:11:490081デフォルトの名無しさん
2010/07/06(火) 18:45:09はい使えますん
0082デフォルトの名無しさん
2010/07/07(水) 08:40:45こういった通信を行うソフトが作りたいのですが
0083デフォルトの名無しさん
2010/07/07(水) 08:49:41作れる技術があるかどうかは別だが
0084デフォルトの名無しさん
2010/07/07(水) 08:54:17TCP/UDPとかSocketとか難しそうですけど地道に勉強していきたいと思います
0085デフォルトの名無しさん
2010/07/07(水) 10:06:110086デフォルトの名無しさん
2010/07/10(土) 03:00:13#pragma comment(lib,"debug/〜.lib")のようにディレクトリを指定してリンクすることは出来ないのでしょうか?
実際にやってみると
LINK : fatal error LNK1104: ファイル 'debug/〜.lib' を開くことができません。
というエラーをはいてしまいます
0087デフォルトの名無しさん
2010/07/10(土) 03:44:06それって、カレントがどこになると思ってるの?
exeと同じ場所に置くのが無難だと思うけど。
絶対パスでもできた希ガス。
0088名無しさん@そうだ選挙に行こう
2010/07/10(土) 13:09:27link.exeプロセスのカレントディレクトリと%LIB%から探されるから、そんな指定はやめとけと
0089名無しさん@そうだ選挙に行こう
2010/07/10(土) 13:47:58デバッグ用のlibとリリース用のlibを使い分けたい場合どうしたらいいのでしょうか?
0090名無しさん@そうだ選挙に行こう
2010/07/11(日) 20:47:330091デフォルトの名無しさん
2010/07/19(月) 21:02:43プログレスバーみたいな感じで、バーコードみたいな部分部分で色が変っているような表示(デフラグの時に下のほうに表示されるプログレスバーみたいな帯です。)
をさせたいんですが、どうやったら実現できますでしょうか。
また.NETにはそれ用のコントロールってありますですか?
0092デフォルトの名無しさん
2010/07/19(月) 21:38:190093デフォルトの名無しさん
2010/07/19(月) 22:21:440094デフォルトの名無しさん
2010/07/20(火) 03:01:180095デフォルトの名無しさん
2010/07/20(火) 03:08:33>>90
0096デフォルトの名無しさん
2010/07/20(火) 07:23:58ありがとうございます。上手く設定することができました。
0097デフォルトの名無しさん
2010/07/20(火) 19:00:590098デフォルトの名無しさん
2010/07/20(火) 20:20:380099デフォルトの名無しさん
2010/07/20(火) 20:26:07ググってもマネージコードうんちゃらという本一冊しかかからないんですぅ
0100デフォルトの名無しさん
2010/07/20(火) 21:09:070101デフォルトの名無しさん
2010/07/20(火) 22:36:19例 1バイトのiとkをそれぞれ5個ずつ表示させると横幅が小さい
iが狭いです。
iiiii
kkkkk
こんな感じになってしまいます。これを直したいです。願いします。
0102デフォルトの名無しさん
2010/07/20(火) 22:38:290103デフォルトの名無しさん
2010/07/22(木) 18:15:530104デフォルトの名無しさん
2010/07/26(月) 21:03:26それ系は買う必要ないと想うが
0105デフォルトの名無しさん
2010/07/28(水) 08:48:37しまってるのですが、これを乗せないようにする方法ってないのでしょうか?
0106デフォルトの名無しさん
2010/07/28(水) 08:50:080107デフォルトの名無しさん
2010/07/30(金) 07:53:190108デフォルトの名無しさん
2010/08/02(月) 20:08:28実行ファイルのパス名を取得するために、下記のようにしています
(パスとファイル名の分離は省略)
TCHAR fName[_MAX_PATH];
GetExeFilePath(NULL, fName, wcslen(fName);
----
これをDEBUGモードでコンパイルしで,デバガのウォッチ式でfNameを
見ると,正しく c:\test\debug\test.exe のように表示されます。
ところがReleaseモードでコンパイルすると fName が c:\ になります.
(実際の実行ファイルは c\test\release\test.exeにある)。
なぜこうなるのでしょうか? 解決方法を教えてください.
0109デフォルトの名無しさん
2010/08/02(月) 20:24:030110デフォルトの名無しさん
2010/08/03(火) 10:01:24//TCHAR fName[_MAX_PATH];
TCHAR fName[500];
GetExeFilePath(NULL, fName, wcslen(fName));
としたら,Release/Debugモード両方で正しく動くようになりました.
stdlib.hで_MAX_PATHは260に定義されていますが,
TCHAR fName[260];ではうまく動きませんでした。
ドライブ名などを含めて、英文字40字程度のファイル名ですので
そんなに長くはないのですが..
理由は分かりませんが、動いたので良いことにしまう
0111デフォルトの名無しさん
2010/08/03(火) 10:09:03ほとんど誰も使ってないだろうし、確かにどうでもいい。
0112デフォルトの名無しさん
2010/08/03(火) 12:40:35GetExeFilePath が何なのか知らんが wcslen(fName) は駄目でしょ。
_countof(fName) とかに書き直せよ。
0113デフォルトの名無しさん
2010/08/03(火) 12:56:51TCHAR fName[_MAX_PATH];
GetExeFilePath(NULL, fName, _countof(fName));
で出来ました!!
UNICODE指定時には、TCHARは _wchar_tと同じになるって
書いてあったので,wcslen(fName)で良いと思ってました
0114デフォルトの名無しさん
2010/08/03(火) 13:10:31wcslen() が何をする関数なのかよく調べとけ。
0115デフォルトの名無しさん
2010/08/03(火) 19:02:350116デフォルトの名無しさん
2010/08/04(水) 02:37:374>C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlconv.h(757): warning C4995: 'wcscpy': 名前が避けられた #pragma として記述されています。
こういう警告がでます.
1.wcscpy_s wcscat_s vsprintf_s vswprintf_s を使う
2.可能な限り早く、(たとえば、stdafx.hの先頭で)
#define _CRT_SECURE_NO_WARNINGS
する
3.可能な限り早く、(たとえば、stdafx.hの先頭で)
#pragma warning( disable : 4995 )
する
と教わりました.1についてatlconv.hはVisualStudioインストールフォルダのものなんですが変更してもいいんでしょうか?
0117デフォルトの名無しさん
2010/08/04(水) 06:00:510118デフォルトの名無しさん
2010/08/04(水) 12:12:070119デフォルトの名無しさん
2010/08/04(水) 12:49:460120デフォルトの名無しさん
2010/08/04(水) 13:21:26入れなおしてみます
0121デフォルトの名無しさん
2010/08/04(水) 15:42:580122デフォルトの名無しさん
2010/08/06(金) 16:19:34どこで質問すればいいかわからずググッても解決法が判らないのでここで質問させていただきます
最近パソコンが重いのでプログラムの追加と削除を見てみると、
上位にMicrosoft visual C++ 2008 express edition SP1 という知らないプログラムがありました
調べてみると開発者ツールのようで、消してもいいかなって思ったんですけど
入れた覚えが無い上に大きいので、もしかしたら初めから入っている重要なプログラムなのでは?と思い
削除に踏みきれません。
それとその直下に日本語用の修正プログラムが6つほどありました
これらのプログラムは一体なんなのでしょうか?
余談ですが、かなり前からDドライブに意味不明なファイル(何かSQLとかがある)が大量に発生し、
しかもそれが削除できないという問題がありまして
もしかしてそれの原因はこれ(C++)なのかな?と思っています
0123デフォルトの名無しさん
2010/08/06(金) 17:39:570124デフォルトの名無しさん
2010/08/06(金) 17:58:45金が無いので買い替えはしません
0125デフォルトの名無しさん
2010/08/11(水) 21:14:35stdafx.h の #include <windows.h> に続いて
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
の2行を足したところ、
c:\program files\microsoft sdks\windows\v7.0a\include\mmsystem.h(802): error C2065: 'int_PTR' : 定義されていない識別子です。
c:\program files\microsoft sdks\windows\v7.0a\include\mmsystem.h(802): error C2146: 構文エラー : ')' が、識別子 'uDeviceID' の前に必要です。
c:\program files\microsoft sdks\windows\v7.0a\include\mmsystem.h(802): warning C4229: 旧形式が使用されています : データの修飾子は無視されます。
c:\program files\microsoft sdks\windows\v7.0a\include\mmsystem.h(802): error C2491: 'waveOutGetDevCapsA' : dllimport データ の定義は許されません。
c:\program files\microsoft sdks\windows\v7.0a\include\mmsystem.h(802): error C2059: 構文エラー : ')'
のような5行1組のエラーが14組、mmsystem.h内14箇所の int_PTR に対応して表示されました。
このエラーに回避方法があればお教え下さい。
0126デフォルトの名無しさん
2010/08/11(水) 23:08:200127デフォルトの名無しさん
2010/08/13(金) 15:37:27OpenGLで日本語を表示するために、FTGLというライブラリを使っています。
http://sourceforge.net/projects/ftgl/
しかし、日本語を表示させようとすると文字化けしてしまいます。
参考: http://d.hatena.ne.jp/yukkepc/20090913/1252822373
この問題は、コントロールパネルからシステムロケールを英語にすると、ちゃんとコンパイルできます。
ただ、この状態だと日本語のファイルパスが全部文字化けしちゃうので開発以外の使用に支障が出てしまいます。
システムロケールを日本語にしたまま、ちゃんとコンパイルするにはどうすれば良いでしょう??
ライブラリはソースも手に入れているので、ソース内をいじることも可能です。
setlocaleする等、色々と試みましたが、解決に至りません。
システムロケール変えればコンパイルできるため、
今は開発時にはいつもシステムロケールを英語にして再起動してるのですが・・・・。
0128デフォルトの名無しさん
2010/08/13(金) 17:36:120129127
2010/08/13(金) 19:30:29あ、いえファイルパス日本語うんぬんは、開発とは関係ない話です。
もちろん開発用のパスは全部英語で統一してます。
分かりにくくてスマソ。
システムロケールを英語にすると、一部の日本語(パスの日本語とか
メニューバーの中の日本語とか)が文字化けしちゃうんですね。
↓こんな感じ
http://iup.2ch-library.com/i/i0136041-1281693513.jpg
なので、開発するときは毎回コンパネでシステムロケールを
英語/日本語で切り替えて再起動させてから始めるんですが、
システムロケール変えずにコンパイル通す方法はないかな、と・・・・。
charをUnicodeに変換するとこが悪いのかと思ってwchar_t使ってみたり、
色々と試してるんですが、ダメぽです・・・・。
0130デフォルトの名無しさん
2010/08/13(金) 21:26:110131デフォルトの名無しさん
2010/08/13(金) 22:40:37CRichEditCtrl クラス のCRichEditCtrl::LineIndex を使うと
カレットがある行の先頭までの文字インデックスは取得出来ますが、
そこからカレットまではどのように求めればよいのでしょうか?
0132デフォルトの名無しさん
2010/08/15(日) 20:19:100133127
2010/08/18(水) 14:59:56日本版のイラレもUnicode対応じゃないんですね。
(システムロケールを日本語にしてくれと怒られて起動もできない)
何とか解決する方法はないですかねぇ・・・・。
ふつうにVC++あきらめてMinGW + Eclipseに乗り換える方が良いかな・・・・?
0134デフォルトの名無しさん
2010/08/18(水) 15:32:09そもそもコンパイルできないって言っているが
コンパイルが失敗して実行ファイルが作られないのか
コンパイルは成功していて実行時に文字化けしてるのか
後者ならソース書き換えれば日本語ロケールでも問題なく動くように出来るだろう
0135デフォルトの名無しさん
2010/08/18(水) 15:50:460136デフォルトの名無しさん
2010/08/18(水) 20:28:13これどう?
Microsoft AppLocale Utility
http://www.microsoft.com/downloads/details.aspx?FamilyID=8c4e8e0d-45d1-4d9b-b7c0-8430c1ac89ab&displaylang=ja
ググればWindows 7でインストールする方法も見つかる。
0137デフォルトの名無しさん
2010/08/18(水) 22:36:55わざと失敗させるとnewを呼んだ時点でクラッシュして固まります
つまり、どのcoutも通らないのでエラー処理ができません。どうすればいいですか
int throwBadAlloc(size_t) {
cout << "例外投げ\n" ;
throw bad_alloc();
return 0;
}
int main() {
double *p = NULL;
unsigned long uil = 999999999UL;
_set_new_handler(throwBadAlloc);
try {
p = new double[uil];
cout << "割り当て成功\n" ;
} catch (bad_alloc xa) {
cout << "例外発生\n" ;
if ( !p )// NULLのままかどうか調べている
cout << "p==NULLのまま\n";
}
delete[] p; return 0; }
0138デフォルトの名無しさん
2010/08/18(水) 22:43:45数値がでかすぎたみたいです
0139デフォルトの名無しさん
2010/08/19(木) 00:55:34標準規格に入っているのはこっちだし。
0140デフォルトの名無しさん
2010/08/22(日) 06:53:58#pragma comment(lib, "絶対path/test.lib") //OK
#pragma comment(lib, "相対path/test.lib") //OK
オプション→プロジェクトおよびソリューション→VC++ディレクトリ
よりライブラリファイルの項目に"絶対path"を追加して
#pragma comment(lib, "Debug/test.lib") //NG
とするとlink1104エラーが発生してしまいます
どう解決すればいいのでしょうか?
0141デフォルトの名無しさん
2010/08/22(日) 09:21:000142デフォルトの名無しさん
2010/08/23(月) 10:00:31http://hibari.2ch.net/test/read.cgi/tech/1274395127/792
>visual c++ 2008 express editionなのですが例えばデバッグ出力で
> ファイル名(行番号) : 内容
>みたいにファイルパスを省いてもジャンプすることができるんですが
>検索結果やエラー表示などでもこんなふうにパスを省くことはできないでしょうか?
>無駄にパス表示が長くて必要な部分を表示するために折り返し・スクロールしないといけません
なにか良い方法はないでしょうか
0143デフォルトの名無しさん
2010/08/23(月) 10:35:11こっちへいけ
Visual Studio 2008 Part 20
http://hibari.2ch.net/test/read.cgi/tech/1269602041/
0144デフォルトの名無しさん
2010/08/23(月) 12:11:28すみません、使ってるのがvisual c++なのでこっちに来てみましたが
確かに内容的にもツール寄りですね、向こうに行ってきます
0145デフォルトの名無しさん
2010/08/27(金) 13:49:17ファイル選択ダイアログを開いてファイル名を取得する際に、
ファイル名を選択せずに開くことはできないのでしょうか。
CFileDialog を使用していて、
dwFlgには下記を設定してみましたが、
ファイル名未入力を行えませんでした。
OFN_HIDEREADONLY | OFN_PATHMUSTEXIST
ファイル選択ダイアログで下記の動作がしたいのです。
存在するファイル名の場合:正常
存在しないファイル名の場合:異常
ファイル名が選択されない場合:正常
よろしくお願いします。
0146デフォルトの名無しさん
2010/08/28(土) 00:54:17初歩的な質問で申し訳ないのですが、整数と整数の割り算で整数と小数の答えを出す式はどう書くのでしょうか?
int n,a,b,c,d,e,f,g,h;
double i=g/h;
case 4:
printf("aを入力してください----");
scanf("%d",&g);
printf("bを入力してください----");
scanf("%d",&h);
printf("%d÷%dは%f\n",g,h,i);
break;
}
0147デフォルトの名無しさん
2010/08/28(土) 03:42:18double i;
scanfのあとで
i=g/(double)h;
それからdoubleにiを使うのも感心せんな
0148デフォルトの名無しさん
2010/08/28(土) 19:55:02入門書見直したらキャスト演算子てしっかり載ってましたすいません
iだとint型みたいで紛らわしいですねsyousuにしときました
0149デフォルトの名無しさん
2010/09/02(木) 00:27:53目的:postmessageで飛ばした処理が終わるのを待ってから
処理を続行したいと考えています。
sendmessageも考えましたが、
処理終了までの間で、postmessage先でpostmessageを使っていて・・・
下記のような処理を考えたのですが、何かの方法でwaitが浮かびません。
何か方法はないでしょうか。
WaitForSingleObjectで" 待機可能なタイマ"を待機できるとありましたが、
タイマを待つ方法が見つけられませんでした。
===================================
postmessage();
int aa;
aa = settimer(NULL,1,100,NULL);
何かの方法でwait(); (100ms*100で抜けたい)
処理続行
===================================
ontimer(nIDEvent)
{
if(1 == nIDEvent)
{
if((TRUE == 処理終了フラグ) or (100 == m_timercnt++)){
KillTimer(1);
}else{
aa = settimer(NULL,1,100,NULL);
}
m_timercnt++;
}
0150nezmeyland
2010/09/02(木) 10:36:33DoModal の返り値の型が
INT -> INT_PTR に変わっているのは無視しても良い?
つまり,
INT nResponse = dlg.DoModal();
から
INT_PTR nResponse = dlg.DoModal();
に,いちいち修正しなくても良い?
0151デフォルトの名無しさん
2010/09/02(木) 13:52:180152デフォルトの名無しさん
2010/09/04(土) 11:53:440153デフォルトの名無しさん
2010/09/04(土) 11:56:300154デフォルトの名無しさん
2010/09/04(土) 19:07:390155デフォルトの名無しさん
2010/09/05(日) 15:09:03例えば"xyz…"と確保したchar配列(というか配列)ではデバッグで[+]を開いていくと
[0] xxx 'x'
[1] xxx 'y'
…
というように見ることができます
配列専用かと思いきやstd::stringでもそのように見ることが出来ています
一方newで配列を作り、その先頭ポインタを確保したとき
その時のデバッグ窓では開いていっても実質
p = (アドレス) "xyz…"
しか確認できません(それ以上開いても先頭文字しか確認できない)
どういう風に作ればstd::stringのようにメモリの動的確保でも配列っぽく確認ができるようになるでしょうか?
0156デフォルトの名無しさん
2010/09/05(日) 15:35:330157デフォルトの名無しさん
2010/09/05(日) 15:47:410158デフォルトの名無しさん
2010/09/05(日) 16:15:58メモリのダンプとは>p = (アドレス) "xyz…" のことでしょうか?
確かに実質的にはこれで十分ではあるんですがstd::string(というかクラス)での配列表示が気になって
>>157
正しくドンピシャでした
std::stringもこれで解釈されてたんですね、なんだかとても面白い物の情報ありがとうございました
0159デフォルトの名無しさん
2010/09/10(金) 22:52:58$(ProjectDir)Hoge.cpp
$(ProjectDir)Hoge\Hoge.cpp
以上のようなファイル構成でビルドしたら
ひょっとしてHoge.objは上書きされてビルドエラーになっちゃいますか?
ビルドすると関数が見つからないと言われてしまいます
0160デフォルトの名無しさん
2010/09/10(金) 23:08:10それぐらい試してから質問しろ
0161デフォルトの名無しさん
2010/09/10(金) 23:56:43そういうケースは Hoge\* だけで先にライブラリのプロジェクト作るかな
0162デフォルトの名無しさん
2010/09/10(金) 23:57:35objの衝突を避けるには、
cppの片方をHoge_0とか書き換える
または、
cppを右クリック→プロパティ
構成プロパティ→C/C++→出力ファイル→オブジェクトファイル名
の項目を編集すればおk
たとえば、$(IntDir)%(Filename)1.obj
とか
0163デフォルトの名無しさん
2010/09/11(土) 11:35:54すいません^^;
>>161
さすがにそれはプロジェクトが乱立して大変なことになりそうです
>>162
これなら現実的ですね
ソースフォルダのルートからの相対パスを-で区切ってobj名にすることにしました
皆さんレスどうもでした
0164デフォルトの名無しさん
2010/09/11(土) 17:50:12$(ProjectDir)Hoge.cpp
$(ProjectDir)Hoge-Hoge.cpp
$(ProjectDir)Hoge\Hoge.cpp
ようなファイル構成でビルドしたら
またエラーになるんですねわかります
0165デフォルトの名無しさん
2010/09/11(土) 17:53:07Hoge\Hoge.cpp
のかわりに
Hoge-Hoge.cpp
を使えばいいんじゃないかって思った
ちょっと見苦しいけど
0166デフォルトの名無しさん
2010/09/11(土) 18:57:55いちいち手で設定直すの面倒な時はスクリプトで片付ける
もしかすると正当でスマートなやり方があるのかも知れないけど
調べるより自分でプログラム書いたほうが早い
0167デフォルトの名無しさん
2010/09/14(火) 01:07:37�@〔ソフトバンククリエイティブ〕【明快入門 Visual C++ 2005 ビギナー編】/ 林 晴比古 (著)
定価: 3,990 円(税込み)
�A〔秀和システム〕【VisualC++逆引き大全500の極意】(開封済み・CD付き)/ 住吉乱(著)
定価: 2,520 円(税込み)
↑をセットで、 3000 円+送料で売ります。
(参考までに送料は、最も安いと思われる「ゆうメール」だと、3kg 以下で590円です。)
プログラマに憧れてましたが、あまりに難しく、適性がないので、もうこの道は諦めることにしました・・orz
なのでほとんど使用感はありません。(笑)
書店でつけてもらったカバーをそのままつけたまま使ってましたので、帯もカバーも折れもシミもありません。
最初は張り切ってたので、�@は数ページ、蛍光マーカーが引いてある箇所がありますがw
�Aなんか、ほとんど開いてもいませんw
「逆引き」の方は、既に絶版重版未定になってるようで、中古の価格相場が分からなかったのですが、
状態の良さにしてはかなり安く設定したつもりです。
これからVC++を始める方、お勉強にどうぞw
メールくだされば、画像や、詳細等、晒します。
よろしくお願いします。
スレ汚し、失礼いたしました。
0168デフォルトの名無しさん
2010/09/14(火) 01:09:520169デフォルトの名無しさん
2010/09/14(火) 09:09:23使えそうと思って買ったら、VCの逆引きは手抜きがひどくて失敗だった。
タイトルに「500の極意」とうたってるから、無理やり500個項目埋めた感じ
例えば
095 オーバーラップウインドウ
096 ポップアップウインドウ
097 レイヤードウインドウ
099 子ウインドウ
こんな感じでウインドウスタイルのフラグ変えただけで項目数だけ無意味に消化していく
0170デフォルトの名無しさん
2010/09/14(火) 09:14:58似たような本はときどき見かける
0171デフォルトの名無しさん
2010/09/14(火) 22:40:27ツールを作りたいのですが、フォルダのアクセルログの収得の仕方が分かりません
0172デフォルトの名無しさん
2010/09/14(火) 22:57:37あとはイベントビューアーのデータの読み取り用APIで
0173デフォルトの名無しさん
2010/09/14(火) 23:07:580174デフォルトの名無しさん
2010/09/14(火) 23:20:170175デフォルトの名無しさん
2010/09/14(火) 23:22:010176デフォルトの名無しさん
2010/09/14(火) 23:32:580177デフォルトの名無しさん
2010/09/14(火) 23:41:38こりゃ配慮が足りなかった スマソ スマソ
0178デフォルトの名無しさん
2010/09/15(水) 18:04:16minGWで作ったdllをVC++のソースから利用出来ますか?
また逆に
VC++で作ったdllをminGWの方で利用出来ますか?
出来たら方法も教えてください。
0179デフォルトの名無しさん
2010/09/15(水) 18:50:350180デフォルトの名無しさん
2010/09/15(水) 20:09:190181デフォルトの名無しさん
2010/09/15(水) 20:11:08試しにリンクしてみればいいんじゃないかな。
0182デフォルトの名無しさん
2010/09/15(水) 20:26:190183デフォルトの名無しさん
2010/09/15(水) 20:50:13Visual C++でstrcpy_sって例外catchできますか?
先輩曰く、Cのランタイムエラーがでるから
どうにかすれば例外をcatchできるはずだって言ってました。
ちなみに、以下の文をなんとかcatchしたいと思っています。
const char string2 = NULL;
char string[80];
strcpy_s(string,sizeof(string),string2);
ご教授ください。よろしくお願いします。
0184デフォルトの名無しさん
2010/09/15(水) 20:53:490185デフォルトの名無しさん
2010/09/15(水) 21:02:29試しに catch ( ... ) で例外全部拾ってみれば?
これでだめならダメじゃないかと。
0186デフォルトの名無しさん
2010/09/15(水) 21:08:30だめでした。
でも、納得してくれないんですよ。
調べが足りないんじゃないの?って
MSDN見ても例外返さないとしか読めないんですが・・・。
人格否定チックな言われ方でちょっと鬱です。
0187デフォルトの名無しさん
2010/09/15(水) 21:20:44_invalid_parameterから_invoke_watson、_call_reportfaultと呼び出して最後はTerminateProcessで終了だ
どうにかする時は_set_invalid_parameter_handlerだ
http://msdn.microsoft.com/ja-jp/library/ksazx244.aspx
>指定した関数がアプリケーションを終了する場合、無効なパラメーターを受け取った関数に制御が戻ります。
日本語ひでぇ
終了するのにもどんな
0188デフォルトの名無しさん
2010/09/15(水) 22:02:37よくは知らないんだけどw
0189デフォルトの名無しさん
2010/09/15(水) 22:12:05意味が良くわかりません
>>180
やっぱりそうですよね
>>181
試してみます
>>182
なるほど
期待出来そうです
みなさんありがとうございました
0190デフォルトの名無しさん
2010/09/15(水) 22:46:250191デフォルトの名無しさん
2010/09/15(水) 22:51:06/EHaにしようと何も来ない
試せば分かる
http://codepad.org/nArXn4tu
0192デフォルトの名無しさん
2010/09/15(水) 23:36:31ありがとうございました
そう報告してみます
0193デフォルトの名無しさん
2010/09/16(木) 15:23:350194デフォルトの名無しさん
2010/09/16(木) 16:26:17VehicleNo = data->getFleetVehicles().size();
//Number of vertices within the problem
DemandNo = data->getVertexs().size()-1;
//Getting the capacity of the first vehicle in the fleet vehicles map
VehicleCapa = data->getFleetVehicles().begin().value()->getCapacity();
というプログラムがあったのですが、これはクラスの継承とやらを行っているのですか?
勉強を始めたばかりの素人なので全くわかりません
正直 size(), begin(), value() や何故2番目が size()-1 かもわからないです
説明か、手がかりになることだけでも教えていただけるとありがたいです
スレ違いでしたらすいませんが、よろしくお願いします
0195デフォルトの名無しさん
2010/09/16(木) 16:33:1110年前なら勧められる本はあったけど、
今からあえてVCやるやつが何考えてるか全然理解できない。
0196デフォルトの名無しさん
2010/09/16(木) 16:37:50それC++ならC++スレへ
0197デフォルトの名無しさん
2010/09/16(木) 17:52:37入門書を読みましょう
0198デフォルトの名無しさん
2010/09/16(木) 18:55:55>今からあえてVCやる
横から失礼
ならば今からやるならおすすめはなんなんでしょう?
今まさに何か言語を勉強しようと思って色々見ててここに来ました
ウィンドウズ上で何か簡単なゲームやアプリが出来ればいいななんて考えてます
0199デフォルトの名無しさん
2010/09/16(木) 19:03:210200デフォルトの名無しさん
2010/09/16(木) 19:08:40すいません、スレ違いでしたか
>>197
読んでもよくわからなかったもので
すいません
0201デフォルトの名無しさん
2010/09/17(金) 20:24:20// TIMER_IDは 1
// TIMER_ELAPSEは 20 で DEFINE してある
SetTimer(hWnd,TIMER_ID,TIMER_ELAPSE,NULL);
case WM_DESTROY:
KillTimer(hWnd,TIMER_ID);
こんな感じで作ってるんだけど
case WM_TIMER:
のハンドラに一切来てくれない。 orz
SetTimerもKillTimerも戻り値を調べると
正常に実行されている(エラー値は返してない)。
ただ、デバッガで見ると、ウィンドウを最小化させる時だけ
case WM_TIMER: の部分に来てる。
最小化させないと10秒待とうが20秒待とうがWM_TIMERのとこには処理が行かない。
どういった問題が考えられる?
0202デフォルトの名無しさん
2010/09/17(金) 20:49:20WM_CREATEがきたときは
CreateWindowが戻り値を返していなくて、
hWndに有効なウィンドウハンドルが入っていないとかあるかもしれない
確認してみてはどうだろう
0203201
2010/09/17(金) 21:00:51どうもありがとう。
WM_LBUTTONDOWN:
の中で SetTimer してみたり、いろんなメッセージで
試してみたけど、どれも同じ(出来ない)・・・
前に別の(SetTimer使う)プログラムをやった時もこういう風になった。
その時は諦めてしまった orz
0204デフォルトの名無しさん
2010/09/17(金) 21:13:57できるだけ小さい構成でうpしてみたらどうだろう
これだけの情報だと原因を探るのがきびしいんじゃないだろうか?
0205デフォルトの名無しさん
2010/09/17(金) 21:30:190206デフォルトの名無しさん
2010/09/17(金) 21:52:300208デフォルトの名無しさん
2010/09/17(金) 23:38:511・2・3・それだぁ
0209デフォルトの名無しさん
2010/09/17(金) 23:44:20おばかさんw
ま、俺もやったことあるからw
0210デフォルトの名無しさん
2010/09/17(金) 23:58:510211デフォルトの名無しさん
2010/09/18(土) 00:05:38それとも全然別の理由で存在するのか
0212デフォルトの名無しさん
2010/09/18(土) 00:08:37Python
0213デフォルトの名無しさん
2010/09/18(土) 00:13:03うーん、まあ、便利なときは便利だよw
つか、今から変えるとなったら、そっちの方が影響甚大だから、単純に合理的とかって理由では
変えられないわw
0214デフォルトの名無しさん
2010/09/18(土) 01:09:25そんな書き方はまずいよなぁ
0215デフォルトの名無しさん
2010/09/18(土) 01:14:31そうだよね
コメントで「ここはスルーするからbreak不要」とか書いておかないと
あとで他人がメンテするときに勝手に入れられたりするかもねw
0216デフォルトの名無しさん
2010/09/18(土) 01:16:09後発は、breakの有用性を勘案して、switchに関しては、breakを不要としたのが多いけれど。
でも、Cという言語の性格を考えると、breakを必要とする、という今の方が、合っている、と
も言える。
0217デフォルトの名無しさん
2010/09/18(土) 01:19:02そこまでアホじゃなくても
case : の順番を入れ替えたりするときに酷い目に遭うよな
0218デフォルトの名無しさん
2010/09/18(土) 02:27:12そしてスルーを多用するswitch文があったら脳がねじれそうだ
0219デフォルトの名無しさん
2010/09/18(土) 07:59:160220デフォルトの名無しさん
2010/09/18(土) 08:08:59んー、名残り、というか、そもそもアセンブラをそもそも高級言語の皮かぶせたみたいのが、
Cで、そういう部分を色濃く表しているのがswitch-case
昔はMACROSとかあってだね、その辺見ると、すぐわかるぞw
0221デフォルトの名無しさん
2010/09/18(土) 08:10:210222デフォルトの名無しさん
2010/09/18(土) 08:29:30そこで goto ですよ
0223デフォルトの名無しさん
2010/09/19(日) 14:41:51Enterキーを押すとウィンドウが閉じてしまいます。
WM_KEYDOWNやWM_CHARも送られてないみたいなんですが
これってどういう理由が考えられるでしょうか?
(DelphiのFormはEnterキーを押しても閉じない)
0224デフォルトの名無しさん
2010/09/19(日) 15:07:34ダイアログはEnterでOKボタン、ESCでキャンセルボタン押したのと同じ動作する。
0225デフォルトの名無しさん
2010/09/19(日) 15:09:000226デフォルトの名無しさん
2010/09/19(日) 16:14:44ESCでも閉じます。
ただ、ダイアログではなく、CreateWindowで作ったウィンドウなんですが・・・
(勘違いしてたらすみません。)
0227デフォルトの名無しさん
2010/09/19(日) 22:36:40簡単なプログラムを実行すると、自動でDOS窓が開いて結果が出力されるの
ですが、すぐにDOS窓が自動で閉じられてしまいます。
で、以前のバージョンだと、CTRL+F5で実行すると、結果出力後もDOS窓は
キーを押さない限り、閉じられなかったのですが、2010でそれをやっても
閉じられてしまいます。自分で予めDOS窓を開いておいて実行すれば大丈夫
ですが、それも面倒です。
何か方法があるのでしょうか?
0228デフォルトの名無しさん
2010/09/19(日) 22:42:120229デフォルトの名無しさん
2010/09/19(日) 22:45:23ありがとうございました。
しかし、なぜ機能が変わったんでしょうかね…
0230デフォルトの名無しさん
2010/09/19(日) 22:56:320231デフォルトの名無しさん
2010/09/19(日) 23:18:32プロジェクト作ってとかやってる方がよっぽど面倒
0232デフォルトの名無しさん
2010/09/19(日) 23:27:230233デフォルトの名無しさん
2010/09/19(日) 23:33:170234デフォルトの名無しさん
2010/09/19(日) 23:55:150235デフォルトの名無しさん
2010/09/20(月) 00:11:24break; が抜けてるんじゃないの?
0236デフォルトの名無しさん
2010/09/20(月) 02:48:120237デフォルトの名無しさん
2010/09/20(月) 06:37:13_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
この3行を加えてみた。
で、例えばmallocでメモリ確保 → 開放せず、だとメモリリークの
メッセージで怒られるが
SetTimerして → KillTimerをしない、だとメッセージが出ない。
1.これってAPIが原因のメモリリークは検出できない?
2.テキストファイルに出力する方法ってない?
(プログラムはC++でなくC+SDK)
0238デフォルトの名無しさん
2010/09/20(月) 07:45:38> 1.これってAPIが原因のメモリリークは検出できない?
YES。あくまでCランタイムのメモリリーク検出機能だからね。
> 2.テキストファイルに出力する方法ってない?
コピー&ペースト。
0239237
2010/09/20(月) 12:52:34そっか。APIは無理なんだ。
情報ありがとう。
0240デフォルトの名無しさん
2010/09/21(火) 00:32:42もっとも主流なスタイルは次のどれなん?
・Win32API(Win64API)
・MFC
・C++/CLI
なんかプロになるにはWin32APIの知識がいるとか聞いたけど…
0241デフォルトの名無しさん
2010/09/21(火) 00:45:12・WTL
なんて選択肢もあったね
0242デフォルトの名無しさん
2010/09/21(火) 00:54:330243デフォルトの名無しさん
2010/09/21(火) 01:33:450244デフォルトの名無しさん
2010/09/21(火) 02:21:320245デフォルトの名無しさん
2010/09/21(火) 03:38:140246デフォルトの名無しさん
2010/09/21(火) 15:37:44この前、WINDOWSXPのノートパソコンを中古で買って、
VC++2008をダウンロードしてプログラミングし直そうと思いました。
(VC++2010は次のパソコンを買ったときにする予定)
だけど、これらの言語が、文法とか関数が異なり過ぎていて、
しかも、VC++2008のヘルプがわかりにくくて使えないです。
こういう場合、VC++2008の初心者用の本を買ったほうがいいでしょうか。
あるいは、必要最低限の知識をまとめて習得できるサイトとかあればいいのですが、
ない場合は、ここのスレで1つの疑問を1回1回聞かなければいけないでしょうか。
とりあえず、ここのスレに来てわかったこと。
MessageBoxは、MessageBox::Show("〜")と書く。
他には、実行ファイルのアドレスの取得法。まだ試してないですが。
VC++4.0ではできなかったので。
0247デフォルトの名無しさん
2010/09/21(火) 15:58:37せっかくだからC#に移行したほうがいいよ
0248デフォルトの名無しさん
2010/09/21(火) 16:55:32C++/CLRだろ
それC++の名前をかぶった変態だから
初心者が使うもんじゃない
>>247が言うようにC#に行くことをお勧めする
0249246
2010/09/21(火) 18:36:37数年後にWINDOWSVISTAか7のパソコン買ってVC++2010やったあとにやろうとも思ったけど、
最近買った今持ってるWINDOWSXPのパソコンでC#を早く始めても良い、ということで?
それに、VC++4.0の次にC#では飛び過ぎない?
それと、プログラミングに関しては、初心者ではありません。10年以上はやってます。ただゆっくりなもので。
何しろ、VC++4.0にはコンテナ(vector、list等)がなくて、別のC++でマスターしてます。
もう1つ。VC++4.0で作ってたのは、フォームというかダイアログというか、のプログラムでした。
0250デフォルトの名無しさん
2010/09/21(火) 19:46:550251デフォルトの名無しさん
2010/09/21(火) 19:48:130252デフォルトの名無しさん
2010/09/22(水) 22:18:13フォームデザインにドラッグアンドドロップで登録できるのですが、
別のclassにて using namespace System::IO::Ports;を宣言し
public: SerialPort^ port;とテーブル宣言すれば利用できるのですが
それぞれの使い方に何か違いはあるのでしょうか?
0253デフォルトの名無しさん
2010/09/22(水) 23:50:450254デフォルトの名無しさん
2010/09/27(月) 13:45:04独自のコマンドラインオプションを追加しました。
そのコマンドラインオプションごとの動作のデバッグを行おうとすると、
プロジェクトのプロパティ内の「デバッグ - コマンド引数」を
こまめに設定しなおすしかないのでしょうか?
0255デフォルトの名無しさん
2010/09/27(月) 21:55:17stdlibのswap関数は見つけたのですが別物なようで・・。
0256デフォルトの名無しさん
2010/09/27(月) 21:56:160258デフォルトの名無しさん
2010/09/27(月) 23:06:46int num = (int)&barray[6]; これに近い文法で抜き出す方法はないでしょうか・・?
0259デフォルトの名無しさん
2010/09/27(月) 23:36:060260デフォルトの名無しさん
2010/09/28(火) 03:56:15シリアル通信で短点と長点を組み合わせた符号を受信すれば、
符号に応じたアルファベットのキー出力がkeybd_eventで行われる、
というVisual C++2003で書かれたフリーウェアソースコードの修正?をしています。
.vcprojや.rcファイルなどいくつかのファイルがなかったので、
見よう見真似で頑張って作ってみてエラーなしにコンパイル出来るようにはなりました。
出来たアプリケーションを立ち上げてシリアル通信でモールス符号を送信してみれば、
問題なく動くのですが、ただひとつだけ…
キー出力「p」を出すための符号「.--.」を送信した場合だけ何故か大文字の「X」(エックス)が
出てしまいます。
「p」の符号と他のアルファベットの符号を入れ替えてみても何故か「p」を出力する時だけ
「X」が出てしまいます。なので「.--.」という符号の形に問題があるわけではなさそうです。
ためしにkeybd_eventでキーを出力する直前にAfxMessageBox();で符号の中身を見て見ると、
「p」の時にはちゃんと「.--.」が入っています。
ソースコードとにらめっこしてみてもこれ以上は自分には荷が重いとギブアップして
しまいました。
どなたかファイルをアップロードするのでおかしそうなところを教えていただけると
ありがたいです。
一応パスワードをかけておきます
pass:vc
http://www1.axfc.net/uploader/H/so/116543
この手のプログラム系スレッドで質問するのは初めてなので質問の仕方に過不足あったら言ってください。
0261デフォルトの名無しさん
2010/09/28(火) 04:03:42プログラムの方じゃなくて符号のテーブルが間違ってるんじゃないか
0262デフォルトの名無しさん
2010/09/28(火) 04:25:04符号のテーブルは書き出したアプリケーション.exeファイルと同フォルダに
.txtファイルとして存在してユーザーが自由に変更出来るようになってます。
自分も真っ先にそこを疑ったんですが、
そこでどう変更しても他は問題なくても「p」だけは「X」として出力されてしまうんです。
ちなみにコンパイルしたアプリケーションも先ほどのアップロードファイルの中に含まれてます。
0263デフォルトの名無しさん
2010/09/28(火) 04:26:55-..- X
-..- x
の二つあるね
全然関係ないとは思うけどちょっと気になった
0264デフォルトの名無しさん
2010/09/28(火) 04:33:40電鍵持ってないんだけど
どうやって入力すればいい?
0265デフォルトの名無しさん
2010/09/28(火) 04:35:40ttp://www.musenken.net/project/denken/
0267デフォルトの名無しさん
2010/09/28(火) 04:43:380268デフォルトの名無しさん
2010/09/28(火) 04:53:21ZIP で 8MB あるけど Debug と Release の中の *.pch はいらないから消してからあげて
0269デフォルトの名無しさん
2010/09/28(火) 09:27:330270デフォルトの名無しさん
2010/09/28(火) 12:57:41いちおう片一方、もしくは両方消してみたけど関係ありませんでした
>>264
そ、それは…
とりあえずKeyboard.cppの中のInput()関数を直接「.--.」の符号でどこかから呼び出してみる、
とか?
>>265,267
そうです、Beep関係はコンパイルエラーが出たのでそれ系の関数は全部削除しました。
もともと音はいらないので。
あ、あとリンカの追加の依存ファイルにあれこれ付け足してみたような…。
>>268
次からは消します、ありがとうございます
>>269
そう…ですね。
0271デフォルトの名無しさん
2010/09/28(火) 13:17:35こんなコードを書いたらどうなる?
GetDlgItem(IDC_EDIT1)->SetFocus();
Global::SendKey(".--.");
0272デフォルトの名無しさん
2010/09/28(火) 13:33:15やってみました、同じですねえ、「X」が出ちゃいます
0274デフォルトの名無しさん
2010/09/28(火) 14:35:03こっちはVisual Studio2003です。
バージョンの違いが関係あるんでしょうか…。
あとハッピーハッキングキーボードという
ちょっと変わった(?)キー配置のキーボード使ってるんですが、
キーボードのコードを引っこ抜いてもダメでした。
ただ作者さんのサイトにあるアプリケーションファイルを落として
そちらを起動すると問題なく動作しました。
0275デフォルトの名無しさん
2010/09/28(火) 15:22:440276デフォルトの名無しさん
2010/09/28(火) 15:48:27> MSKB832904もろ
っていうのはよくわかりませんでしたが、Service Packは入れてませんでした。
XPだとこちらのSP1でいいんですよね?
http://www.microsoft.com/downloads/details.aspx?familyid=69D2219F-CE82-46A5-8AEC-072BD4BB955E&displaylang=ja
今ちょっと出先なので家に帰ったら一応入れてみます。
0277260
2010/09/29(水) 01:37:22やっぱりダメでした(TДT)PC再起動しても無理です。
なんでだ…
「p」を出力できたという方、改編したソースコードいただけたら嬉しいです
0278デフォルトの名無しさん
2010/09/29(水) 01:42:42コンパイルの時警告は
LINK : warning LNK4089: 'OLEAUT32.dll' へのすべての参照は /OPT:REF によって廃棄されます。
のみです。
0279デフォルトの名無しさん
2010/09/29(水) 02:15:42VC++2010 とかじゃだめなん?
0280デフォルトの名無しさん
2010/09/29(水) 12:50:28構造体内のポインタ関数へのアクセスの書き方は
普通に(*構造体名 . 関数名)();という書き方でよろしいのでしょうか?
0281デフォルトの名無しさん
2010/09/29(水) 13:38:100283デフォルトの名無しさん
2010/09/29(水) 15:31:010284デフォルトの名無しさん
2010/09/29(水) 15:31:45アクセスだけなら
ふがふが = 構造体名 . 関数名(ほげほげ);
0285デフォルトの名無しさん
2010/09/29(水) 16:59:370287デフォルトの名無しさん
2010/09/29(水) 20:43:29gccのリンカスクリプトみたいにセクションを自由に
配置するにはどうすればいいでしょう?
ある変数(数十MB)を1MB境界に配置したいんです。
#pragma data_seg()でセクションは生成できるけど、
アドレスは自由に配置できない。
attribute(align())も上限が8192。
0288デフォルトの名無しさん
2010/09/29(水) 20:50:570290260
2010/09/29(水) 23:37:00たしかに最適化無効にすると「p」が「X」になることはなくなりました、
が、今度は何故か「a」が「S」になっちゃいます。
最適化オプションを変更してみると以下のことがわかりました。
「a」→「S」
最適化無効
最大限の最適化
カスタム
「p」→「X」
プログラムサイズ
実行速度
カスタムにしてその下のパラメーターをあれこれ変更しても「a」→「S」になります。
ちなみにもともと配布されてるアプリケーションは問題なく全ての文字を打ち込むことができました。
0291デフォルトの名無しさん
2010/09/30(木) 02:26:180292デフォルトの名無しさん
2010/09/30(木) 03:25:440293デフォルトの名無しさん
2010/09/30(木) 07:51:09mapVKey["l" + (1, 'a'+i)] = Shift('A' + i);
おかしいのここじゃないの?
0294デフォルトの名無しさん
2010/09/30(木) 08:44:50拾ってきたゴミいじっても、ろくなことない。
さっさと捨てた方が吉
0295デフォルトの名無しさん
2010/09/30(木) 12:41:201つのBYTE配列を「長さが毎回異なるBYTE配列3つの連結」で作っているのですが、
データの繋ぎ目(変わり目)の良い表し方は無いでしょうか?
できるだけ常にBYTE配列のサイズを小さく抑えたく、
特定の値を目印に・・とは考えるのですが、偶然少数などで同じビット配列が来たら酷い事になるのでは・・等と
心配になってしまいます。 何か良い方法は無いでしょうか・・?
0296デフォルトの名無しさん
2010/09/30(木) 12:57:570297デフォルトの名無しさん
2010/09/30(木) 13:11:130298デフォルトの名無しさん
2010/09/30(木) 13:29:250299298
2010/09/30(木) 13:42:380300デフォルトの名無しさん
2010/09/30(木) 14:07:33293さんが書いてるから、もう分かったと思うけど
mapVKey["l" + (1, 'a'+i)] = Shift('A' + i);
を消すか
mapVKey[string(1, 'A'+i)] = Shift('A' + i);
に書き換えれば良いのでは?
0301デフォルトの名無しさん
2010/09/30(木) 14:34:31>>300
今電鍵打てる環境にないのでとりあえず300さんに教えて頂いた書き換えをして、
SendKey()で全ての符号を直接呼び出してみました。
問題なく全て表示されました!
長々と付き合って頂いて本当にありがとうございます!
0302デフォルトの名無しさん
2010/09/30(木) 18:55:180303デフォルトの名無しさん
2010/09/30(木) 19:33:360304デフォルトの名無しさん
2010/10/01(金) 05:00:380305305
2010/10/01(金) 05:07:29http://www.maroon.dti.ne.jp/koten-kairo/works/dsPIC/dsPIC_start.html
↑で勉強中で、Windowsフォームアプリケーション でのLED制御には成功しました。
これを参考によりシンプルなコードで制御を行うため、空のCLRプロジェクト から作成しようと考えているのですが、うまく行きません。
以下がその全ソースコードです。
#using <System.dll>
#include <windows.h>
using namespace System;
using namespace System::IO::Ports;
int main()
{
SerialPort^ port = gcnew SerialPort(L"COM4",
1115000, Parity::None, 8, StopBits::One);
port->WriteTimeout = 2000
port->Open();
port->Write(L"right\r");
Sleep(1000);
port->Write(L"right\r");
Sleep(1000);
port->Close();
};
USB-Serial変換ケーブルを使用しています。
TeraTermを使用して right を送信したところ、LEDを光らせることには成功しました。
エラー、警告は出ないのですが、上記コードをデバックしてもLEDは光りません。
これを光るようにしたいです。お願いします。
0306デフォルトの名無しさん
2010/10/01(金) 08:50:40LED光らせてるようには見えないけど
LEDが光るかどうかは文字を受けた側の判断だろ
0307デフォルトの名無しさん
2010/10/01(金) 11:39:220308デフォルトの名無しさん
2010/10/01(金) 11:52:30まずはArduinoでテストすべき
0309デフォルトの名無しさん
2010/10/01(金) 11:59:02115200?
0310305
2010/10/01(金) 20:36:25115200にしたら、LEDが光りました。
皆様、ご協力頂きありがとうございました。
0311デフォルトの名無しさん
2010/10/01(金) 21:12:110312デフォルトの名無しさん
2010/10/01(金) 21:14:420313デフォルトの名無しさん
2010/10/01(金) 21:29:590314デフォルトの名無しさん
2010/10/01(金) 21:35:590315デフォルトの名無しさん
2010/10/01(金) 21:48:320316デフォルトの名無しさん
2010/10/02(土) 00:22:400317デフォルトの名無しさん
2010/10/02(土) 09:49:170318デフォルトの名無しさん
2010/10/02(土) 13:36:420319デフォルトの名無しさん
2010/10/03(日) 10:37:48sdl + opengl + win32 でゲームのプログラミングをやってるんですが
クラスにint型の変数ひとつを追加しただけで今まで動いていたプログラムが
途中で落ちるようになりました。
変数追加以外の操作はやっていません。
ほかにもいろいろ試してたんですがint型の配列を101個以上の要素で追加すると
正常に動作すること確認できました。
原因がよくわからなくて気持ちわるいんですが、知ってる人がいたら教えてください。
0320デフォルトの名無しさん
2010/10/03(日) 10:52:400321デフォルトの名無しさん
2010/10/03(日) 11:13:481、スコープの関係で変数名がかぶってバグが
2、スタックメモリの使いすぎ
とか?
なんにしてもこれだと情報が足りないと思われ
0322デフォルトの名無しさん
2010/10/03(日) 12:03:050323デフォルトの名無しさん
2010/10/03(日) 14:19:25配列で未定義の領域にアクセスする可能性のあるコード
があったので、そこを直したら動くようになりました。
変数を追加する前と101個の要素の配列を追加した後も
実際は正常には動いてなかったみたいです。
レスをくれた人、ありがとうございました
0324デフォルトの名無しさん
2010/10/04(月) 03:50:10OSCPackというUDP通信のソースコードを下記から拾ってきて(oscpack_1_0_2.zip)
http://www.audiomulch.com/~rossb/code/oscpack/
examplesフォルダにあるSimpleReceive.cppをビルドするために、
Win32アプリケーションプロジェクトを作成し、
エラー無しでコンパイル出来るまでは出来ました。
しかし、Debugフォルダに出来た.exeファイルをクリックして起動させると、
"Debbug error! this application has requested the runtime"
みたいなアラートが出て停止してしまいます。
どなたか問題点のわかる方、アドバイス願えますでしょうか?
0325デフォルトの名無しさん
2010/10/04(月) 08:44:220326デフォルトの名無しさん
2010/10/04(月) 13:28:31OSCPackの使い方サイトに
> リンカの追加の依存ファイルに「ws2_32.lib」(winsock用)と「winmm.lib」(timeGetTime?用)を追加する
と書いてあったのでそれはやったのですが…
0327324
2010/10/05(火) 21:38:57コンパイルして実行してみると問題なく動作し、また値の方も正確に送信されていました。
やはり受信のサンプルだけRuntimeエラーが出るみたいです。
どなたかアドバイスいただければ幸いです。
0328デフォルトの名無しさん
2010/10/05(火) 22:27:430329324
2010/10/05(火) 23:12:10> a.exe の 0x7c812a6b でハンドルされていない例外が発生しました : Microsoft C++ exception: std::runtime_error @ 0x0012faa0。
0330デフォルトの名無しさん
2010/10/05(火) 23:30:01しかしコンストラクタの中身を書いていないので
theApp::InitInstance()ってどこで実行されるんですか?
派生元のコンストラクタから実行されるんですか?
調べてみたけど静的仮想関数?混乱してます
初心者スレってことでよろしくお願いします。
0331324
2010/10/06(水) 01:09:020332デフォルトの名無しさん
2010/10/06(水) 01:48:140333デフォルトの名無しさん
2010/10/06(水) 05:41:04コールスタック(呼び出し履歴)
0334デフォルトの名無しさん
2010/10/06(水) 17:38:49そんな使い方する人も居るんだな
0335デフォルトの名無しさん
2010/10/06(水) 18:41:300336デフォルトの名無しさん
2010/10/09(土) 00:35:23下記の○○に入れる内容がわかりません…。
「this」を入れるとメンバーではないと言われるし、
ダイアログのCHogeDlg.hをインクルードして「CHogeDialog」を入れると
'CHogeDlg' にはオーバーロードされたメンバ 'operator ->' がありません。
'->GetSafeHwnd' : 左側がクラス、構造体、共用体へのポインタではありません。
みたいに言われるし…
HWND hWnd =○○->GetSafeHwnd();
HWND hDlgItem = GetDlgItem(hWnd, IDC_EDIT1);
SetDlgItemText(hDlgItem,IDC_EDIT1,"unko");
0337デフォルトの名無しさん
2010/10/09(土) 08:51:46書いてあるはずだから、その辺勉強するといい。
別にプライベートメンバーじゃなくても他人の持ち物には直接さわらないのが礼儀
0338デフォルトの名無しさん
2010/10/09(土) 13:28:55ありがとうございます
入門サイトとかまわって下記のように書いてコンパイル出来るまでにはなったのですが、
結局IDC_EDIT1に値が入りませんでした。
クラス外からアクセスする方法が間違っているのか
その他の部分が間違ってるのかもうわからなくなってしまいました…
CHogeDlg *app = (CHogeDlg*)AfxGetApp();
HWND hWndow =app->GetSafeHwnd();
HWND hDlgItem = GetDlgItem(hWndow, IDC_EDIT1);
SetDlgItemText(hDlgItem,IDC_EDIT1,"unko");
0339デフォルトの名無しさん
2010/10/09(土) 13:58:400340デフォルトの名無しさん
2010/10/09(土) 17:43:46どこがおかしいのかわかりません
ご教授よろしくお願いします
void CtestMFCDlg::OnBnClickedButton1()
{
int n =pEdit_1.GetWindowTextLengthW();
pEdit_1.SetSel(n,n,FALSE);
int linecount=pEdit_1.GetLineCount();
pEdit_1.ReplaceSel(_T("test成功です\r\n"));
if(linecount>3) pEdit_1.LineScroll(-1);
}
0341デフォルトの名無しさん
2010/10/09(土) 18:39:500342デフォルトの名無しさん
2010/10/09(土) 21:05:59AfxGetMainWndでもダメでした。
CHogeDlg *dialog = (CHogeDlg*)AfxGetMainWnd();
HWND hDialog =dialog->GetSafeHwnd();
HWND hDlgItem = GetDlgItem(hDialog, IDC_EDIT1);
SetDlgItemText(hDlgItem,IDC_EDIT1,"unko");
0343デフォルトの名無しさん
2010/10/09(土) 21:42:23CHogeDlg dialog;
CEdit* edit = (CEdit*)GetDlgItem(dialog,IDC_EDIT1);
SetDlgItemText(edit->GetSafeHwnd(),IDC_EDIT1,"unko");
0344デフォルトの名無しさん
2010/10/09(土) 22:43:280345デフォルトの名無しさん
2010/10/09(土) 22:55:39■hogeDlg.hのpubulicに
void CHogeDlg::ChangeEdit1(char* text);
を追加
■hogeDlg.cppに
void CHogeDlg::ChangeEdit1(char* text)
{
CEdit* edit1 = (CEdit*)GetDlgItem(IDC_EDIT1);
edit1->SetWindowText(text);
}
■hogehoge.cppに
void HogeHoge::EditChange()
{
CHogeDlg cdd;
char* t="unko";
cdd.ChangeEdit1(t);
}
これで出来るだろと思ってhogeDlg.cppからhogehoge.cppのEditChange()を呼び出したとたん
EXEが落ちる…。
高橋マナとか言う人の「やさしいC++」買って読みながらやってるんですけど出来ません…
0346デフォルトの名無しさん
2010/10/09(土) 23:35:42hogeDlg.hでの関数宣言の部分を訂正します。
× void CHogeDlg::ChangeEdit1(char* text);
○ void ChangeEdit1(char* text);
0347デフォルトの名無しさん
2010/10/10(日) 00:04:04edit1->SetWindowText(text);
の一文を消すととりあえずEXEが落ちることはなくなりました。
なんか問題は外部からの呼び出しではない気がしてきたのですが…。
0348デフォルトの名無しさん
2010/10/10(日) 00:25:36先のように
edit1->SetWindowText(text);
を消して代わりに
AfxMessageBox(text);
の一文を入れてやると、ちゃんと呼び出されてtextに文字が代入されているのが確認できました。
またedit1->SetWindowText(text);を消さないで、
CHogeDlgクラスの別の関数内から呼ぶと問題なくIDC_EDIT1に文字が代入されます。
つまり外部からCHogeDlg::ChangeEdit1関数の呼び出しは出来ているものの
その中の
edit1->SetWindowText(text);
のところでEXEが落ちるようです。
同クラス内の別関数からChangeEdit1を呼ぶと大丈夫です。
0349デフォルトの名無しさん
2010/10/10(日) 00:34:18#pragma once
#include "afxwin.h"
#define WM_NOTIFYICON (WM_USER+1)
class CHogeDlg : public CDialog{
public:
CHogeDlg(CWnd* pParent = NULL); // 標準コンストラクタ
enum { IDD = IDD_Hoge_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート
private:
NOTIFYICONDATA m_Icon;
protected:
HICON m_hIcon;
afx_msg HRESULT OnNotifyIcon(WPARAM wPram, LPARAM lParam);
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedStart();
protected:
virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
public:
void ChangeEdit1(char* text);
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);};
0350デフォルトの名無しさん
2010/10/10(日) 01:41:490351デフォルトの名無しさん
2010/10/10(日) 01:57:230352デフォルトの名無しさん
2010/10/10(日) 02:55:40ちょっと行ってきます
0353デフォルトの名無しさん
2010/10/10(日) 23:26:240354デフォルトの名無しさん
2010/10/10(日) 23:29:46使えますよ。
0355デフォルトの名無しさん
2010/10/10(日) 23:40:062003の方がよかったってことですよね。残念だ
0356デフォルトの名無しさん
2010/10/11(月) 00:22:07VC 2003 ExpressはMFCを使えませんよ?
0357デフォルトの名無しさん
2010/10/11(月) 00:39:43zlibを先にコンパイルしてそのlibをincludeすればいいんでしょうか?
どこかに詳しいやり方を書いたURLかコンパイル済みのlibはないですか?
0358デフォルトの名無しさん
2010/10/11(月) 00:50:390359デフォルトの名無しさん
2010/10/11(月) 01:37:15つKFC
0360デフォルトの名無しさん
2010/10/11(月) 15:17:06vssettingsをexportするとキー名が下矢印とかなってるんだが
そのままインポートすると認識できないとか言われる。
vssettingsの該当箇所を'↓'に変えてやると一応メッセージは正常とかでるけど実際にはキーバインド変更されていない…
'Down'とか'DownArrow'とかも試してみたけど認識しない。回避手段とかないですか?
vs2005と2008exで確認。vs2010はインストールしていない
0361デフォルトの名無しさん
2010/10/11(月) 15:19:470362デフォルトの名無しさん
2010/10/11(月) 16:52:47相変わらずサインインが煩雑かつ有償サポートじゃないのになぜかクレカ要求されたんで戻る押してきた
ちなみに公式フォーラム覗いてみたけど同様の問題は挙がってなかった。
どうしても困るようなものじゃないので>>360の件はそういうものとして諦めます。
どうもでした。
0363デフォルトの名無しさん
2010/10/11(月) 17:56:05サインイン周りが面倒なのは変わりないけど。
http://connect.microsoft.com/VisualStudioJapan/Feedback
0364デフォルトの名無しさん
2010/10/11(月) 23:47:01アプリケーション種類:[Windows アプリケーション]を作成後、
リソースの追加にて拡張子が.wavのファイルを約82MByte分リソースとしてインポートして
アクティブ ソリューション構成を「Release」にして、
ソリューションのビルドを行うと以下のように出力されビルドに失敗します。
▼▼▼ 失敗例
------ ビルド開始: プロジェクト: res_test, 構成: Release Win32 ------
コンパイルしています...
stdafx.cpp
・・・ 中略 ・・・
リンクしています...
コード生成しています。
コード生成が終了しました。
マニフェストを埋め込んでいます...
プロジェクト : error PRJ0002 : エラーの結果 31 が 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe' より返されました。
ビルドログは "file://k:\41_開発\streaming_res_test\res_test\res_test\Release\BuildLog.htm" に保存されました。
res_test - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
▲▲▲
アクティブ ソリューション構成を「Debug」にして、ソリューションのビルドを行うとビルドは正常終了します。
また、アクティブ ソリューション構成が「Release」の場合でも、リソースにインポートするwavのファイルが
約13MByte分の場合も正常終了します。
Releaseのビルドの時に失敗する理由は単に、インポートするリソースの容量が大きすぎるからでしょうか。
この失敗を回避する方法をご存知の人がいらっしゃれば、お教えしていただけないでしょうか。
Visual Studio 2008 Standard Editionなのが悪いのでしょうか、Standardより上のエディションでは成功するのでしょうか。
よろしくお願いします。
0365デフォルトの名無しさん
2010/10/12(火) 00:04:13DialogBox関数を実行してもダイアログが表示されません。
GetLastError() でエラーを取得すると、
「トップレベルの子ウィンドウを作成できません。」
を意味するエラーが返ってきました。
開発環境: Visual C++ 2010
SDK で「空のプロジェクト」からプロジェクトを作り、
リソースからDialogを追加して、IDを ID_MYDLG にしています。
以下の main.cpp を作りましたが、上記のような状態です。
#include <windows.h>
#include "resource.h"
BOOL CALLBACK MyDlgProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst, LPSTR lpsCmdLine, int nCmdShow) {
DialogBox(hCurInst, MAKEINTRESOURCE(IDD_MYDLG), NULL, (DLGPROC)MyDlgProc);
DWORD err = GetLastError();
return 0;
}
BOOL CALLBACK MyDlgProc(HWND hDlg, UINT msg, WPARAM wp, LPARAM lp) {
// ブレークポイントを設定しても、ここを通過しませんでした
switch (msg) {
// 省略します
}
return FALSE;
}
以上です。どこがおかしいでしょうか。。。よろしくお願いいたします。
0366364
2010/10/12(火) 02:16:33アクティブ ソリューション構成が「Release」の状態にて、
メニューより[プロジェクト]→[XXのプロパティ]を選択すると
「XXプロパティ ページ」のウィンドウが表示されます。
ここで、[構成プロパティ]→[リンカ]→[マニフェスト ファイル]を選択して、
「マニフェストの生成」を『いいえ』にして、ビルドを行うと
ビルドの失敗を回避することができ、Releaseの実行モジュールが
作成されました。
その実行モジュールをWindowsXP SP2 OSをインストールしたての
(他のものを一切インストールしていない)PCで動かすと動きました。
マニフェストというのがどういう役割をするものなのかわかりません。
また、マニフェストの生成をした実行モジュールとマニフェストの生成を
しなかった実行モジュールを動かしてみて見た目の比較をしたのですが、
何が違うのかわかりませんでした。
下記の3点について、ご存知の人がいらっしゃれば教えていただけないでしょうか。
�@ビルドの失敗を回避することができましたが、この回避方法は正しいのでしょうか。
�Aマニフェストというのはどういう役割をするものなのでしょうか。
�B「マニフェストの生成」を『はい』にしてビルドした実行モジュールと
『いいえ』にしてビルドした実行モジュールを比較して、後者は実行時に
何か弊害が起こりうるのでしょうか。あるとすればどのような弊害なのでしょうか。
よろしくお願いします。
0367デフォルトの名無しさん
2010/10/12(火) 17:59:21書き込むと最初に書いてあったキーと値が消えてしまいます。どうすればいいでしょうか。
void writeINI(char *key,int num)
{
char str[MAX_PATH];
const int maxBuf=100;
char numChar[maxBuf];
int length;
if((length = sprintf_s(numChar, maxBuf, "%s=%d",key, num)) < 0)error("INIへ書き込み失敗",NULL);
if (length < maxBuf)numChar[length+1] = '\0';
getDirectry(str,"\\data\\setting.ini");
WritePrivateProfileSection("top",numChar,str);
}
0368デフォルトの名無しさん
2010/10/12(火) 18:32:03まともなサンプルを参考に作りなおせばいい。
0369367
2010/10/12(火) 21:55:150370デフォルトの名無しさん
2010/10/12(火) 22:37:24ただ、そんなに大きなリソースを含むプロジェクトではないし、
もう1度ビルドし直せばうまくいくので、自分の場合は特に問題になっていないのだけど。
0371デフォルトの名無しさん
2010/10/13(水) 01:42:31いろいろ調べて、イベントを監視しフォームを表示し続ける無限ループのような処理であると理解してます。
これに対して、別の無限ループ処理(たとえば、USBカメラの入力があるか調べて画面に表示)を付け加えたいのです。
無条件に発生するイベントがあればよいのですが、MSDNを調べてもそのようなものはありませんでした。
どなたかうまい実装法を知ってる人がいたらご教授お願いします。
0372デフォルトの名無しさん
2010/10/13(水) 02:40:570373デフォルトの名無しさん
2010/10/13(水) 03:19:08カメラがDirectShowのじゃない場合あきらめんしゃい。
0374デフォルトの名無しさん
2010/10/13(水) 13:28:59VC++の実行ボタンで起動したときはソリューションかプロジェクトのファイルがある階層を基準にするのに対し、
実行ファイルを直接起動した場合は実行ファイルがある階層を基準にするので、
実行ファイルか画像ファイルのいずれかを移動してから実行しないといけません。
VC++から実行した場合でも、実行ファイルがある階層を基準にするように設定できませんか?
0375デフォルトの名無しさん
2010/10/13(水) 13:55:00プロジェクトのプロパティの「デバッグ」-「作業ディレクトリ」
でも、実行時のカレントフォルダなんて、
ショートカットのプロパティなどでいくらでも別の場所になる可能性があるので、
常に「実行ファイルがある階層」を指定したいのなら、
自分自身のパスなどを使って絶対パスで指定しないと危険。
0376デフォルトの名無しさん
2010/10/13(水) 18:45:540377374
2010/10/13(水) 20:28:23< VC++から実行した場合でも、実行ファイルがある階層を基準にするように設定
は>375さんが教えてくださった方法で実現できるけど、
いざ第三者に配布したときに、予想外のパスをカレントにされる可能性もあるんですね。
だから「実行ファイルと同じフォルダ内や、その下層にあるファイルを確実に取得したければ、
自分自身のフルパスを取得してからそれ基準で指定するべき」なんですね。
>376さんの関数名(ですよね?)等で検索して、調べてみます。
ご指導ありがとうございました。
0378デフォルトの名無しさん
2010/10/13(水) 20:42:240379デフォルトの名無しさん
2010/10/13(水) 21:32:210380デフォルトの名無しさん
2010/10/13(水) 21:48:35GetModuleFileNameでは?
0382デフォルトの名無しさん
2010/10/14(木) 03:54:19カレントディレクトリを取得しようと思い
URL1 - http://msdn.microsoft.com/ja-jp/library/cc429301.aspx
を読んで、なんとか思い通りのことができましたが
URL2 - http://msdn.microsoft.com/ja-jp/library/system.io.directory.getcurrentdirectory(v=VS.80).aspx
のC++のタブにて、同名かつ引数の違うメソッドが説明されており、混乱しています。
(1) 2つのページを眺めてみたものの、恥ずかしながら体系の違いがわかりません。
2つはどういう関係にあるものでしょうか。
(2) URL1の関数に与えるパラメータ、DWORD nBufferLength の一般的な適正値ってあるのでしょうか。
パスの長さとして十分であればいいのでしょうが…もし指針や慣例があれば教えてください。
0383デフォルトの名無しさん
2010/10/14(木) 04:06:13MAX_PATH
0384382
2010/10/14(木) 10:22:41ありがとうございます!
なんとなく分かってきました…。もうちょっと質問させてください。
2つの使い分けを試してみようと、コードの冒頭に
#include <windows.h>
を追加し、これでネイティブの関数が動くようになったと思うのですが
(そもそも windows.h が何者なのかもよく分かっていない初心者です)
「ネイティブC++を使いたいときは windows.h をincludeすればよい」 という認識は正しいでしょうか。
またこのとき、 .net に用意されている同名の関数が動かなくなってしまいます。
(要求されている引数が違うので当然ながらエラーになります)
クラスファイルを別々に用意し、windows.h をincludeするもの・しないものと分けたところ
ネイティブの関数が動くクラス・ .netの関数が動くクラス、と分けることができました。
同一ファイル内で両方の関数を使う手段はあるのでしょうか。
それとも、両方を使いたい場合はクラスファイルを分けるもの、と覚えればよいでしょうか。
朝から長文続きですみません。
0385デフォルトの名無しさん
2010/10/14(木) 10:53:200386382
2010/10/14(木) 11:35:49名前空間で分けられるということですかね。ちょっと試行錯誤してみます。
とりいそぎお礼まで。
0387デフォルトの名無しさん
2010/10/14(木) 12:50:230388デフォルトの名無しさん
2010/10/14(木) 13:12:44関数Bでは関数Cを呼び、関数Cは関数Dを呼び・・・と何層にもなっているとします。
ここで、関数Cや関数Dから、goto文のように直接関数Aにreturnすることはできるでしょうか?
0389デフォルトの名無しさん
2010/10/14(木) 13:30:390390デフォルトの名無しさん
2010/10/14(木) 13:32:280391デフォルトの名無しさん
2010/10/14(木) 13:45:410392デフォルトの名無しさん
2010/10/14(木) 13:53:300393デフォルトの名無しさん
2010/10/14(木) 14:04:550394デフォルトの名無しさん
2010/10/15(金) 17:57:36片方消したいのですがどうやればいいんでしょうか。
0395デフォルトの名無しさん
2010/10/17(日) 21:35:220396デフォルトの名無しさん
2010/10/18(月) 13:25:29しかし、サンプルプログラムをビルドしようとしても。
fatal error C1083: ソース ファイルを開けません。'..\..\roboSimu\src\amotor.cpp': No such file or directory
というエラーが出てきて開くことが出来ません。とても初歩な質問ですいませんがどなたか
答えてくれるとうれしいです。
0397デフォルトの名無しさん
2010/10/18(月) 13:28:200398デフォルトの名無しさん
2010/10/18(月) 13:46:130399デフォルトの名無しさん
2010/10/18(月) 15:25:09検索したら同じような質問があった
これで解決するかどうかは知らないが
ttp://demura.net/9ode/538.html
0400デフォルトの名無しさん
2010/10/18(月) 16:40:10でそこが問題ではないと思います。
0401394
2010/10/18(月) 16:41:24visual studio 2008を使ってます。
0402デフォルトの名無しさん
2010/10/18(月) 17:18:26ツールの細かい操作方法なんか暗記するものでもないし、
わざわざそういう状況作って試してみないと答えようがないだろ
自分なら直接定義ファイルいじればどうにでもなるから興味ないし
0403デフォルトの名無しさん
2010/10/18(月) 21:35:15その上に文字を描画するのってどうやったら出来ますか?
ニコニコみたいに動画プレイヤの上に文字を乗せたいのですが、
まずはコントロールの上にどうやったら文字を描画出来るのかなぁと。
0404デフォルトの名無しさん
2010/10/18(月) 22:08:25「windows サブクラス化」とかでググればサンプルコードでてくると思う。
0405デフォルトの名無しさん
2010/10/18(月) 22:16:550406デフォルトの名無しさん
2010/10/18(月) 22:33:07なるほど、単純に出来るのかと思ったら、、
ちょっとググって調べてみます。ありがとうございます。
>>405
すみません、そういう意味ではないです。
0407394
2010/10/19(火) 00:52:170408デフォルトの名無しさん
2010/10/19(火) 08:29:22このサイトの問題2を解いているのですが
String^ e;
という風にeを変数に定義するとエラーをおこしてしまいます
dやfやgならエラーがおきないのですが、eは使ってはいけないのですか?
0409デフォルトの名無しさん
2010/10/19(火) 08:29:40コードを書いてる途中にIntelliSenseを更新中となったままIntelliSenseが効かなくなったり
VC++を終了できない状態が度々発生します。
これはどうすれば解決するでしょうか?
母艦DeskTopPCではおこらずモバイルノートPCで使用中に発生します
OSはwin7starter
VisualStudio2005を使用しています
0410デフォルトの名無しさん
2010/10/19(火) 08:44:05引数にeという名前の変数がもう使われてるから
0411デフォルトの名無しさん
2010/10/19(火) 08:54:08eは自分が使ってないところで既に使われてるってことなんでしょうか
ありがとうございました
0412デフォルトの名無しさん
2010/10/19(火) 11:07:150413デフォルトの名無しさん
2010/10/19(火) 11:53:250414デフォルトの名無しさん
2010/10/21(木) 00:18:25コンパイルに時間が2分くらいかかる
PCそろそろ変えろってことだろうか
0415デフォルトの名無しさん
2010/10/21(木) 00:18:47String^filename1,^filename2;
・・・
FileStream^fs1,^fs2;
fs1=gcnew FileStream(filename1,FileMode::Open);
fs2=gcnew FileStream(filename2,FileMode::Open);
・・・
fs1->Close();
fs2->Close();
といったようなプログラムで、filename1==filename2だった場合、
別のプロセスで使用されているため・・・アクセスできません。
というようなエラーが出ます。
これはつまり、fs1のあとfs2でも同じファイルを読もうとしたためで、
すなわち、同じファイルを異なるシステムが同時にアクセスできないようになっているという、システム全体の仕様だと思われますが、
それでも何とかしてできるようにするための手段はあるでしょうか。
0416デフォルトの名無しさん
2010/10/21(木) 00:22:24アクセスを許可すればよい。
0417デフォルトの名無しさん
2010/10/21(木) 03:06:300418デフォルトの名無しさん
2010/10/22(金) 23:23:14コンパイラの最適化性能においてVC++2008や2010のほうがより性能向上しているでしょうか?
リアルタイムな処理を行うプログラムを作るので、より高速に動くようになるとうれしいです。
0419デフォルトの名無しさん
2010/10/23(土) 16:22:45.NET Framework 4で追加されたメソッドを使いたいのですがどうすればいいですか?
.NET 4をインストールしてみたですがそれだけでは使えないようです
0420デフォルトの名無しさん
2010/10/24(日) 08:00:280421デフォルトの名無しさん
2010/10/24(日) 13:18:062005で十分。具体的にボトルネックを判断できるようになってからコンパイラやライブラリを選べばいい。自分で性能評価ができないと判断できないよ。
>>419
VC++は.netじゃないから使えません。C++/CLIで呼べなくないけど、C++/CLIは初心者にはお勧めできません。
0422デフォルトの名無しさん
2010/10/24(日) 17:57:22意味がわからん回答だな
>>419
http://ja.wikipedia.org/wiki/Microsoft_Visual_Studio#.E5.AF.BE.E5.BF.9C.E3.81.99.E3.82.8B.NET_Framework
対応してない。
0424デフォルトの名無しさん
2010/10/26(火) 09:37:18何か条件があるの?
0425sage
2010/10/26(火) 17:51:57似たようなものばかりで、あまり実用的なものがありません。
このスレの方で、昔自分が作ったプログラムを公開している方とかいますか?
もしいるのならURLなどを教えてもらえないでしょうか?
よろしくお願いします。
0426デフォルトの名無しさん
2010/10/27(水) 08:23:20なんとなくこんな関数名がありそうというのは予想つくのですが
cから呼ぶことはできますでしょうか
0427デフォルトの名無しさん
2010/10/27(水) 08:55:000428デフォルトの名無しさん
2010/10/27(水) 09:37:130429デフォルトの名無しさん
2010/10/27(水) 09:49:40戻ってくるとは限らない
0430デフォルトの名無しさん
2010/10/27(水) 09:59:180431デフォルトの名無しさん
2010/10/27(水) 10:03:350432デフォルトの名無しさん
2010/10/27(水) 22:12:26class myClass
{
public:
myClass(void);
~myClass(void);
};
クラスの作成を行うと~myClass(void);ってのが出ます。
その上はコンストラクタって分かるんですが、~myClass(void);は何ですか?
0433デフォルトの名無しさん
2010/10/27(水) 22:30:450434デフォルトの名無しさん
2010/10/27(水) 22:55:47オススメの入門サイト教えて下さい
無料ソフトのみで開発環境を整える方法と
『おはよう』ってフォームに表示されるサンプルソースの作成・実行方法までが知りたいです
VC#でググっても全然わかんない(>_<)
0435デフォルトの名無しさん
2010/10/27(水) 23:46:33MSDNでチュートリアルから全部見たほうがいいよ
0436デフォルトの名無しさん
2010/10/28(木) 00:22:14こんなクソみたいな質問に答えてくれて本当にありがとう
色んなサンプル実行してみて勉強してみます
環境の整え方がさっぱりだったので助かりました(^0^)/
0437デフォルトの名無しさん
2010/10/28(木) 09:45:540438デフォルトの名無しさん
2010/10/31(日) 12:34:47文字や図形を描画することくらいしかできないらしいな。
つまり実用性なしなんだな。
0439デフォルトの名無しさん
2010/10/31(日) 12:38:21それをメンバ変数に結び付けて、イベントハンドラに、C言語ライクな
コードを差し込むことがやっとできるくらいだし。
つまり、Visual C++だから何かできるわけではないんだな。
単に、今まで作ってきたコマンドプロンプトのプログラムを、
Windowsプログラムの画面を借りて、イベントハンドラにコードを差し込む
ことができるだけにすぎないんだな。
0440デフォルトの名無しさん
2010/10/31(日) 12:53:39終わってるものばっかりで、こんなんでどうやって商業的なプログラム
を生産できるのかとがっかりだ。
0441デフォルトの名無しさん
2010/10/31(日) 13:26:430442デフォルトの名無しさん
2010/10/31(日) 18:14:49MFCでいうOnDraw関数のようなものは、windowsアプリケーションには
用意されていないのでしょうか?
0443デフォルトの名無しさん
2010/10/31(日) 18:19:23エスパーにトライ:
windowsアプリケーションには表面的にOnDraw関数のような物は見えません。
0444デフォルトの名無しさん
2010/10/31(日) 18:40:130445デフォルトの名無しさん
2010/10/31(日) 18:41:380446デフォルトの名無しさん
2010/10/31(日) 18:42:44それじゃね?
つエスパー1級
0447デフォルトの名無しさん
2010/10/31(日) 23:09:52MFC やったことないからわからへんけど。
0448デフォルトの名無しさん
2010/11/01(月) 01:06:21デストラクタすら理解してない人は、Windowsプログラムなんか作るのは無理だろう。
Windowsプログラムの学習を中止して、C++の学習に専念してるんだが、それで正しいよな。
まずはコマンドプロンプトで上級まで行ってから、Windowsプログラムを学習してもいいよな。
0449デフォルトの名無しさん
2010/11/01(月) 01:16:510450デフォルトの名無しさん
2010/11/01(月) 01:41:380451デフォルトの名無しさん
2010/11/01(月) 17:15:56MFCと.NET(MSフォームアプリ)どっちが作りやすいと思いますか?
0452デフォルトの名無しさん
2010/11/01(月) 17:18:220453デフォルトの名無しさん
2010/11/01(月) 17:28:310454デフォルトの名無しさん
2010/11/01(月) 23:20:49VC++のテンプレートの中にあるWindowsフォームアプリケーションのことを
通称で.netって言ってるんだと思ってました。
>>453
VC++でやってみたいんです。申し訳ないです。
0455デフォルトの名無しさん
2010/11/02(火) 00:35:480456デフォルトの名無しさん
2010/11/02(火) 10:10:07API でちまちまいっぱいコード書いていくのが楽しい
0457デフォルトの名無しさん
2010/11/02(火) 15:15:00API直叩き面白いよね
0458デフォルトの名無しさん
2010/11/02(火) 17:19:550459デフォルトの名無しさん
2010/11/02(火) 21:57:36まず、フォームにラジオボタンを2つ置きます。次に、その1つのイベントプログラムに、次の文を書きます。
MessageBox::Show("〜","〜");(〜は何でも良い。上の方にusing namespace System::Windows::Forms;を書く必要のある場合も)
そして、ビルドのあと実行させてみます。文を書いた方のラジオボタンをクリックすると、メッセージボックスが出ます。
そしてすぐに別のラジオボタンを押すと、なぜか同じようなメッセージボックスが出ます。
イベントプログラムに書いてないはずなのに出ます。もう1回押したときは出ませんが。
これはバグでしょうか。それとも何らかの仕様でしょうか。
0460デフォルトの名無しさん
2010/11/02(火) 22:08:530461デフォルトの名無しさん
2010/11/02(火) 22:17:50ON→OFF チェック状態が変わった
OFF→ON チェック状態が変わった
3つ置けば分かるかと。
0462デフォルトの名無しさん
2010/11/02(火) 23:14:05ttp://ac.weaselly.org/text-etc2/odbc_5.html
0463デフォルトの名無しさん
2010/11/03(水) 18:55:26プロジェクトにヘッダを追加する際に、
デフォルトで拡張子を.hppにする方法はありますか?
0464デフォルトの名無しさん
2010/11/04(木) 00:14:30「外部シンボルは未解決です、外部参照 1 が未解決です」というエラーが出ました
何か参照を追加しなければならないようなので、いろいろググって見たけどわかりません
どうすれば解決できますか?
VistaSP2 VC++2008EE Win32Projectです
0465デフォルトの名無しさん
2010/11/04(木) 00:16:54エラーの内容を全部かけ
問題はお前が省いてるところにある
0466デフォルトの名無しさん
2010/11/04(木) 00:19:22盲目フィルタ掛かってる香具師が多いな
0467デフォルトの名無しさん
2010/11/04(木) 00:47:16すいません、省いているところに問題がありました
class hoge {
private:
static map<UINT, hoge*> hogePtr;
…
}
というふうにクラス内でstaticで宣言してましたが、staticをはずしたら
エラーにならなくなりました
mapはstaticでは使えないのでしょうか?
0468459
2010/11/04(木) 00:55:00なるほど、わかりました。
イベントプログラムは、ラジオボタンが押されているかいないかが変化したときに起こる、ということで。そこで・・・
if(○×△□->Checked==true)
MessageBox::Show("〜","〜");
としてみたら、ちゃんと、文のあるラジオボタンが押されたときのみ、メッセージボックスが出ました。
あるいは、他にちゃんとしたやり方とかございます?
0469デフォルトの名無しさん
2010/11/04(木) 00:55:37mapじゃなくてもスタティックなメンバ変数は定義を書かないとエラーになる
適当なcppファイルに
map<UINT, hoge*> hoge::hogePtr;
と書いとけばいい
0470467
2010/11/04(木) 01:16:46ありがとうございます、staticでmapが使えるようになりました
超初心者でスタティックなメンバ変数を初めて使ったので定義を書かないと
いけないとはまったく知りませんでした。おかげさまでいい勉強になりました
本当に感謝感謝です
0471デフォルトの名無しさん
2010/11/04(木) 01:19:380472デフォルトの名無しさん
2010/11/04(木) 11:24:36クラスを定義しているdllとそのlibがあります。
Release版のdllとlibをリンクさせた場合、
Releaseビルド時は正常に動作しているのですが
Debugビルド時におかしな値が返ってきます。
また、Debug版のdllとlibをリンクさせた場合はその逆です。
dllはDebug版とRelease版の両方を公開する必要があるのでしょうか?
0473デフォルトの名無しさん
2010/11/04(木) 12:40:11ラジオボタンはボタンの一種だからボタン押したというメッセージがちゃんとある
0474デフォルトの名無しさん
2010/11/04(木) 13:48:01そんなもの公開されても迷惑なだけ
0475472
2010/11/04(木) 14:02:17それはRelease版のみでいいということでしょうか?
それとも「公開」という単語の問題でしょうか?
提供と言い直した方がいいかもしれませんね。
0476デフォルトの名無しさん
2010/11/04(木) 14:05:50他人のPCに入れさせて迷惑かけるなよ
0477472
2010/11/04(木) 14:18:43私としてはまともに動かしたいのですが、
(Release版のdllとlibを提供するだけで動く)
原因がよくわからないため
dllとはそういうものなのかどうかを知りたいのです。
dllとして正常な動作でないのであれば原因を特定したいです。
(もちろん現在調査を行ってはいます。)
0478デフォルトの名無しさん
2010/11/04(木) 17:24:11あまり一般的でない開発用途や業務用途ということなんだろうか?
0480デフォルトの名無しさん
2010/11/04(木) 18:36:370481デフォルトの名無しさん
2010/11/05(金) 02:59:45http://msdn.microsoft.com/ja-jp/library/aa985618.aspx
http://msdn.microsoft.com/en-us/library/aa260978.aspx
0482デフォルトの名無しさん
2010/11/05(金) 11:30:020483デフォルトの名無しさん
2010/11/05(金) 23:09:20リスト構造は親ウインドウのプロシージャでstatic宣言するものでしょうか?
今は子ウインドウプロシージャでstatic宣言していて親ウインドウの方でファイル読み込みダイアログを開いて子ウインドウをつくり
子ウインドウのWM_CREATEの処理でプロシージャに渡された
ウインドウハンドルでリストをつなげています
(つまり1ビットマップ1子ウインドウハンドルのイメージです)
親ウインドウ側の処理でリストを作った方がいいのか混乱しています。
子ウインドウの破棄の際のリストのメモリ解放で失敗していて・・・
使ってるのはネイティブAPIとCです
0484デフォルトの名無しさん
2010/11/06(土) 05:48:570485デフォルトの名無しさん
2010/11/06(土) 09:05:58staticなのにメモリ解放とか意味わからん
0486デフォルトの名無しさん
2010/11/06(土) 09:43:41{
static 最後に読み込まれたリストへのポインタ;
static 検索用ポインタ;
static リストの先頭(NULL);
WM_CREATE:
リストデータ用メモリ確保;
読み込み;
挿入;
WM_DESTORY:
今破棄されようとしているウインドウハンドルが入っているリストデータへ検索用ポインタを移動;
データ破棄(メモリ解放);
ウインドウ破棄
}
上のstatic宣言からデータ破棄までは親ウインドウ側のプロシージャでできるので
一般のソフトはどのように作られているものなのか聞いてみたかったのです
そもそもマルチウインドウの操作にリストを使っていないかどうかも
0487デフォルトの名無しさん
2010/11/06(土) 11:56:57C++のlibの場合には呼び出し元とlibのビルド環境がコンパイルオプションも
含めて完全に一致していないと動作を保証できない。
必然的にソースコードも丸ごと提供するか、
両者に対して個別対応してサポートするか、
どちらかしかない。
もしソースコードを提供せずに互換性を維持したいなら、
COMかレガシーDLLとして提供する必要がある。
0488デフォルトの名無しさん
2010/11/06(土) 12:24:520489デフォルトの名無しさん
2010/11/06(土) 12:48:54http://ja.wikipedia.org/wiki/64%E3%83%93%E3%83%83%E3%83%88
0490デフォルトの名無しさん
2010/11/06(土) 13:07:50ありがとうございます。
64ビットでもintは64ビットになるとは限らないってことですね。
INTにすればどんなCPUでも確実に32ビットになるってことでいいんですか?
0491デフォルトの名無しさん
2010/11/06(土) 13:27:200492デフォルトの名無しさん
2010/11/06(土) 13:54:460493デフォルトの名無しさん
2010/11/06(土) 15:11:29もし int 型が 8bit の環境だとどうするんだ
0494デフォルトの名無しさん
2010/11/06(土) 15:24:17標準規格で決まってるんで規格に従ってる限りはintが8bitはありえない
0495デフォルトの名無しさん
2010/11/06(土) 15:33:32VC++ 2010以上またはVC++以外のコンパイラしか使わない
<stdint.h>や<cstdint>のint8_t、int16_t、int32_t、int64_t、uint8_t、uint16_t、uint32_t、uint64_t
VC++2008以下も使う(ただしWindows限定)
<windows.h>のINT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64
ほかには、Boostの<boost/cstdint.hpp>(int8_t……がboost名前空間にある)なども。
0496デフォルトの名無しさん
2010/11/06(土) 16:52:42ありがとうございます。
参考になりました。
0497デフォルトの名無しさん
2010/11/08(月) 20:16:48構成プロパティ>デバッグ>環境
な項目は
VC2003だとどこで設定したらいいんでしょうか?
0498デフォルトの名無しさん
2010/11/08(月) 20:17:37○VC2008でいう
0499デフォルトの名無しさん
2010/11/09(火) 23:10:56int a;
int b;
int c;
int d;
int f;
int w;
a=int::Parse(textBox1->Text);
b=int::Parse(textBox2->Text);
c=int::Parse(textBox3->Text);
d=int::Parse(textBox4->Text);
f=int::Parse(textBox5->Text);
w=a+b+c+d+f;
if(w>=300)textBox6->Text=L"合格です";
if(w<300)textBox6->Text=L"不合格です";
って入力したら
1>その5.cpp(19): fatal error C1075: 左側 中かっこ '{' に対応するものが 'c:\users\shintaro\documents\visual studio 2010\projects\その5\その5\Form1.h(225)' で見つかる前に EOF が検出されました。
って出たんだけどどういうことか教えてください
0500デフォルトの名無しさん
2010/11/09(火) 23:28:21括弧の閉じ忘れ
0501デフォルトの名無しさん
2010/11/09(火) 23:44:12どこで閉じたらいいんすか?
0502デフォルトの名無しさん
2010/11/09(火) 23:49:21お前が決めろ
0503デフォルトの名無しさん
2010/11/09(火) 23:50:110504デフォルトの名無しさん
2010/11/10(水) 00:30:43parse() が例外出すから
このコードじゃアプリケーション落ちちゃうね
0505デフォルトの名無しさん
2010/11/10(水) 00:33:18だれでもみんな最初は初心者
0506デフォルトの名無しさん
2010/11/10(水) 01:15:32どうすればいい?
0507デフォルトの名無しさん
2010/11/10(水) 01:20:20Windows Mobile SDK
で検索
0508デフォルトの名無しさん
2010/11/10(水) 01:25:35ありがとうございます!!。
0509デフォルトの名無しさん
2010/11/14(日) 00:05:58Unicodeとマルチバイト どっちがいいのでしょうか?
ttp://wisdom.sakura.ne.jp/system/winapi/win32/win6.html
の最初のやつUnicodeだと化けたんで今はマルチバイトにしてます
0510デフォルトの名無しさん
2010/11/14(日) 00:13:35キャストでエラーを潰す奴はもっとアホ
0511デフォルトの名無しさん
2010/11/14(日) 03:56:220512デフォルトの名無しさん
2010/11/14(日) 09:16:47アプリケーションが呼び出す Windows API を
ANSI版かUnicode版のどちらにするかでもあるけど
Windows NT系列(NT/2000/XP/Vista/7/それ以降)で、
ANSI版を呼び出しても内部で Unicode 版を呼び出し直すから
そのアプリケーションを WIndows 9x で動かせるようにしたい場合以外は
パフォーマンス的にも無駄。
ちなみに Visual Studio 2008 以降では Windows 9x で動くバイナリは
吐けないんだったかな
0513デフォルトの名無しさん
2010/11/14(日) 09:18:080514デフォルトの名無しさん
2010/11/14(日) 09:52:570515デフォルトの名無しさん
2010/11/14(日) 10:03:320516デフォルトの名無しさん
2010/11/14(日) 20:24:040517デフォルトの名無しさん
2010/11/14(日) 21:39:02visual studi 2008 express なのですが
$(IntDir)とかのように、長いパスをマクロで定義したいのですが、どこで行うのでしょうか?
0518デフォルトの名無しさん
2010/11/14(日) 22:22:10ホームページのWebインストールを押すとよくわからない検索サイトに飛ばされます
http://www.microsoft.com/japan/msdn/vstudio/express/
なぜでしょうか?
0519デフォルトの名無しさん
2010/11/14(日) 22:25:450520デフォルトの名無しさん
2010/11/17(水) 12:10:00全画面表示の他のプログラムの上にも描画したい。
同様に、他のプログラムの特定の位置から色を取得したい。全画面の他のプログラムの特定の位置からも色を取得したい。
どのようにしたらいいでしょうか。
gccを使ってプログラムをいじったことはかなりあるんですが、Windowsのプログラムはやったことがないです。
0521デフォルトの名無しさん
2010/11/17(水) 12:49:42他のプログラム〜はウインドウのハンドルを取得
0522デフォルトの名無しさん
2010/11/17(水) 14:10:57とりあえず、OnekoのWindows版のソース落として読んでみます。
0523デフォルトの名無しさん
2010/11/17(水) 14:28:58ウィンドウを作成しないウィンドウなんて簡単に作れるだろ
他のアプリに描画するのもHWND/HDC取れれば可能
他のプロセスにもぐりこませるのはDLLインジェクションで可能
0524デフォルトの名無しさん
2010/11/17(水) 14:49:16ああ、もしかすると、相手はプロセス名とか隠蔽されてるプログラムかもしれませんけど、その節はまたお世話になります。
0525デフォルトの名無しさん
2010/11/21(日) 11:57:15可能ならどうやるのですか?
学校には製品版のVisualStudio2008もあります。
0526デフォルトの名無しさん
2010/11/21(日) 13:58:15それで代用できないかな。
HRESULT型なんかだと勝手にS_OKって文字列で表示されるから便利でもあるし、不便でもあるけど。
0527デフォルトの名無しさん
2010/11/21(日) 16:16:092進は無いな
0528デフォルトの名無しさん
2010/11/21(日) 17:15:26っつーか2進だと見にくくね?
0529デフォルトの名無しさん
2010/11/21(日) 21:57:17方法有りませんか? 上位のcatchまで飛んでしまうのは辛い。
0530デフォルトの名無しさん
2010/11/21(日) 22:11:040531デフォルトの名無しさん
2010/11/21(日) 22:38:570532デフォルトの名無しさん
2010/11/23(火) 15:37:58makeファイルからプロジェクトを作る方法ってないのですか
0533デフォルトの名無しさん
2010/11/24(水) 14:24:38初めにポインタを2つ用意してその後各ポインタのサイズを指定した場合、
2つ目のポインタが上書きされてしまう恐れはありますか?
unsigned int data = sizeof(unsigned int) * 256;
int* arrayA; //�@
int* arrayB; //�A
arrayA = (int*)malloc(data); //�B
arrayB = (int*)malloc(data);
上の例でですが、この順に実行した場合、�AarrayBの番地情報が�Bの領域確保時に上書きされてしまうのでしょうか?
�@と�Aの番地データはメモリ上で連番で確保されているのでしょうか?
0534デフォルトの名無しさん
2010/11/24(水) 14:41:21意味不明だが、エスパーするとされない。
>�@と�Aの番地データはメモリ上で連番で確保されているのでしょうか?
連続の場所になるかは未定義。 普通はされない。
0535デフォルトの名無しさん
2010/11/24(水) 15:31:43回答ありがとうございます。
ということは、
�Bで[確保した領域の始点アドレス]を[�@に代入]すると言うだけで、
(�@,�Aで連番で確保されていたとしても)�Aが上書きされることは無いということなんですね。
ありがとうございました
頭の中では
[A][B][ ][ ][ ] �Aの時点でこうなり
[A][0][1][2][..] �Bでこうなると思ってました。
0536デフォルトの名無しさん
2010/11/24(水) 15:34:240537デフォルトの名無しさん
2010/11/24(水) 16:15:25おおむねOK
arrayA = (int*)malloc(data); //�B
arrayB = (int*)malloc(data);
これで、たまたま連番で確保されたとしても、、Aに確保された下に確保されるので。
重なる事はない。実際には、確保以外にメモリー管理領域があるので。
連続に確保されたとしても、管理分のメモリーが間に入る。
0538デフォルトの名無しさん
2010/11/24(水) 16:26:190539デフォルトの名無しさん
2010/11/24(水) 16:48:47w
0540デフォルトの名無しさん
2010/11/24(水) 17:15:000541デフォルトの名無しさん
2010/11/24(水) 22:16:09"extern "C" unsigned __int64 __stdcall mysql_affected_rows(struct st_mysql *)"
(?mysql_affected_rows@@$$J14YG_KPAUst_mysql@@@Z) が関数 "public: int __clrcall
Cosme_System::DataAccess::Delete_Order(class System::String ^)"
(?Delete_Order@DataAccess@Cosme_System@@$$FQ$AAMHP$AAVString@System@@@Z)
で参照されました。
こういったエラーがやまほどでるんですが何が原因かさっぱりわかりません
宜しくお願い致します。
VC++2008、DBはmysql5.1です
0542デフォルトの名無しさん
2010/11/24(水) 22:17:570543デフォルトの名無しさん
2010/11/25(木) 01:22:200544デフォルトの名無しさん
2010/11/25(木) 02:38:590545デフォルトの名無しさん
2010/11/25(木) 03:03:23構成貼ってから言え
0546デフォルトの名無しさん
2010/11/25(木) 03:35:35#include <winsock.h>
#include "mysql.h"
dataaccess.cppには
#include "StdAfx.h"
#include "DataAccess.h"
#include <string>
mysql.hを使ってるのでプロジェクトのプロパティ→C/C++の追加インクルードに
"C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"
リンカ→入力→追加の依存ファイルに
"C:\Program Files\MySQL\MySQL Connector C 6.0.2\lib\opt\libmysql.lib" $(NOINHERIT)
0547デフォルトの名無しさん
2010/11/25(木) 03:36:54int DataAccess::DatabaseConnect(void){
//データベース接続
mysql_real_connect(mysql,"localhost","","pass","database",0,"null",0);
//データベース接続エラーチェック
if(mysql_errno(mysql) != 0)
{
String^ err = gcnew String( mysql_error(mysql) );
Debug::WriteLine("エラー発生:" + err);
return -1;
}
return 0;
}
こんなところですが、どうでしょう
0548デフォルトの名無しさん
2010/11/25(木) 04:42:3932bit版のlibをリンクしてるとか?
0549デフォルトの名無しさん
2010/11/25(木) 05:36:07mysql-connector-c-6.0.2-winx64.msiなので
大丈夫かとは思ったのですが
マジでわからんですorz
0550デフォルトの名無しさん
2010/11/25(木) 05:54:42程よい画像が見つからなかったので英語版で悪いけど、
こんな感じの奴。
↓
ttp://www.openrtm.org/OpenRTM-aist/figs/VCBuildTips/vc2005porting/IntelC++CompilerCommandLine.png
0551デフォルトの名無しさん
2010/11/25(木) 07:16:44よろしくです
ttp://002.harikonotora.net/software/img/811-1.jpg
0552デフォルトの名無しさん
2010/11/25(木) 09:27:29x86のプロジェクトにx64のライブラリをリンクさせようとしてるだろ。
32bitのプロジェクトにリンクするには32bitのライブラリもDLしてインストールしないとならない。
0553デフォルトの名無しさん
2010/11/25(木) 19:53:43目からウロコでした
みなさん丁寧にありがとうございました
おかげでできました
0554デフォルトの名無しさん
2010/11/26(金) 16:46:58でエラーが出まくって、数千にもなってしまいます。
これを、100ぐらいで止める方法有りませんか?
0555デフォルトの名無しさん
2010/11/26(金) 17:00:480556デフォルトの名無しさん
2010/11/26(金) 17:02:420557デフォルトの名無しさん
2010/11/26(金) 21:25:250558デフォルトの名無しさん
2010/11/26(金) 23:08:550559デフォルトの名無しさん
2010/11/27(土) 01:05:530560デフォルトの名無しさん
2010/11/29(月) 22:03:02どのように実装すればいいのでしょうか。
今まで普通のツールバー(メニューのすぐ下の)しかしたことなくてわかりません。
0561デフォルトの名無しさん
2010/12/01(水) 22:20:15ReBar
0562デフォルトの名無しさん
2010/12/02(木) 01:08:28↑のサイトを参考にVC++でImage型をバイト列に変換するコードを書いたのですがC2664エラーが出てしまいます。
どこが間違っているのでしょうか。
using namespace System;
using namespace System::Drawing;
using namespace System::IO;
using namespace System::Net;
ref class imgConv{
ImageConverter^ imgconv;
public:
imgConv(void){
imgconv = gcnew ImageConverter();
}
System::Drawing::Image^ ByteToImage(array<Byte>^ b){
System::Drawing::Image^ img =dynamic_cast<System::Drawing::Image^> (imgconv->CanConvertFrom(b));
return img;
}
cli::array<Byte>^ ImageToByte(System::Drawing::Image^ img){
cli::array<Byte>^ b = dynamic_cast<cli::array<Byte>^> (imgconv->ConvertTo(img,typeid::cli::array<Byte>^));
return b;
}
};
0563デフォルトの名無しさん
2010/12/02(木) 09:47:220564デフォルトの名無しさん
2010/12/02(木) 19:00:06↑このページを参考にしてプログラムを書いていて、
VC++2008Expressを使用しているのでATLが利用できないため、ATLを使わないよう書き直しつつやっていたのですが
hr=m_MFSession->BeginGetEvent(this, NULL);
のところで、グローバル関数にアクセスするための 'this' ポインタがありません。
とエラーが出て、詰まってしまいました。
この場合、代わりに何を指定すればいいのでしょうか?
0565デフォルトの名無しさん
2010/12/02(木) 19:06:420566デフォルトの名無しさん
2010/12/02(木) 22:53:000567デフォルトの名無しさん
2010/12/02(木) 22:58:40/__.))ノヽ
.|ミ.l _ ._ i.)
(^'ミ/.´・ .〈・ リ
.しi r、_) |
| `ニニ' /
ノ `ー―i´
0568デフォルトの名無しさん
2010/12/04(土) 13:38:58http://msdn.microsoft.com/en-us/library/ms701637.aspx
IMFAsyncCallbackオブジェクトへのポインタ。
そのあとの「Topology を制御する」のところで、CMyWindowをIMFAsyncCallbackから派生させているだろ。
だから、お前も次のどっちかをしたらいい。
a. ウィンドウをクラスにしている→そいつをIMFAsyncCallbackの派生にしてthisを渡す。
b. ウィンドウをクラスにしてない→別途IMFAsyncCallbackの派生クラスを作ってそいつを渡す。
0569デフォルトの名無しさん
2010/12/04(土) 15:03:06また、違うのなら何が違うのでしょうか?
それとなぜみなさんはコードを書いたり出来るのでしょうか?やはり努力ですか?
0570デフォルトの名無しさん
2010/12/04(土) 15:10:16また、違うのなら何が違うのでしょうか?
0571デフォルトの名無しさん
2010/12/04(土) 15:10:39C++ と言った場合、言語のC++全体を指す。
>違い
商品名と一般的な俗称。C++で規格の事を示す場合もある。
>それとなぜみなさんはコードを書いたり出来るのでしょうか?
興味+趣味+努力+楽しさ。
0572デフォルトの名無しさん
2010/12/04(土) 15:26:12求めよ
さらば得られん
0573デフォルトの名無しさん
2010/12/04(土) 19:15:38ありがとうございます。これからがんばってみます。
0574デフォルトの名無しさん
2010/12/04(土) 19:19:000575デフォルトの名無しさん
2010/12/04(土) 19:22:010576デフォルトの名無しさん
2010/12/04(土) 19:24:49それが全くいないんですよ。
0577デフォルトの名無しさん
2010/12/04(土) 19:42:05それ見ればおk
0578デフォルトの名無しさん
2010/12/04(土) 19:50:50ありがとうございます。
0579デフォルトの名無しさん
2010/12/04(土) 20:36:58まじかいやw
0580デフォルトの名無しさん
2010/12/04(土) 20:43:01http://www.nicovideo.jp/watch/sm12618919
0581デフォルトの名無しさん
2010/12/04(土) 21:39:22どちらを試してみても、抽象クラスをインスタンス化できません。と言われてしまいます。
1> 'HRESULT IUnknown::QueryInterface(const IID &,void **)' : は抽象型です
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\unknwn.h(116) : 'IUnknown::QueryInterface' の宣言を確認してください。
1> 'ULONG IUnknown::AddRef(void)' : は抽象型です
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\unknwn.h(120) : 'IUnknown::AddRef' の宣言を確認してください。
1> 'ULONG IUnknown::Release(void)' : は抽象型です
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\unknwn.h(122) : 'IUnknown::Release' の宣言を確認してください。
1> 'HRESULT IMFAsyncCallback::GetParameters(DWORD *,DWORD *)' : は抽象型です
1> c:\program files\microsoft sdks\windows\v6.0a\include\mfobjects.h(2944) : 'IMFAsyncCallback::GetParameters' の宣言を確認してください。
1> 'HRESULT IMFAsyncCallback::Invoke(IMFAsyncResult *)' : は抽象型です
1> c:\program files\microsoft sdks\windows\v6.0a\include\mfobjects.h(2948) : 'IMFAsyncCallback::Invoke' の宣言を確認してください。
0582デフォルトの名無しさん
2010/12/04(土) 22:27:49これわちょっとw
まじめでいいと思うけどぉ
0583デフォルトの名無しさん
2010/12/04(土) 22:29:46この板的にはこっちだろ
http://www.nicovideo.jp/watch/sm8517855
0584デフォルトの名無しさん
2010/12/04(土) 22:39:43VCじゃねーしw
0585デフォルトの名無しさん
2010/12/04(土) 22:58:500586デフォルトの名無しさん
2010/12/04(土) 23:13:280587デフォルトの名無しさん
2010/12/05(日) 02:47:11ファイルの読み出しでハマったので質問させてください。
FILE fh;
long pos;
_tfopen_s( &fh, _T( "textfile.txt" ), _T( "r,ccs=UTF-8" ) );
と、UTF-8として開いたファイルからfread()や_fgetts()なんかでデータを読み出した後に
pos = ftell( &fh );
でファイルの位置を読み出すとマイナス値になったり、そうでなくても変な値が返ってきます。
データ自体は正常な文字列で、正しく読み出せています。
とりあえず_ftelli64()を使ったら正常な値が返ってきたのでlongにキャストして使ってるんですが、これって仕様なんでしょうか?
MSDNみてもそれっぽい事書いてないし、なにか予め呼ばなければならない関数なんかがあったりするんでしょうか。
0588デフォルトの名無しさん
2010/12/05(日) 02:48:280589デフォルトの名無しさん
2010/12/05(日) 02:52:43ごめんなさい。
実際は、ライブラリのような物の中の問題で実際のコードをコピペできなかったので、
再現するであろうコードを頭なの中で作って書きました。
実際はちゃんとFILE*ですし、_tfopen_sにはポインタのポインタを渡しています。
あとftell( &fh );も誤りで、実際はftell( fh );になってます。
0590デフォルトの名無しさん
2010/12/05(日) 06:46:300591デフォルトの名無しさん
2010/12/05(日) 13:36:55これはVC++2010Expressでビルド通してきました。
#include <stdio.h>
#include <Windows.h>
#include <tchar.h>
int _tmain(int argc, TCHAR* argv[])
{
FILE *fh;
long pos;
TCHAR buf[32];
_tfopen_s( &fh, _T( "D:\\test.txt" ), _T( "r,ccs=UTF-8" ) );
_fgetts( buf, 32, fh );
pos = ftell( fh );
_tprintf( _T( "offset %d\n" ), pos );
fclose( fh );
Sleep( 10000 );
return 0;
}
D:\\test.txtの中身は
ABCDEFG
HIJKLMN
OPQRSTU
VWXYZ
このコードで、_fgetts()は正しくbufに「ABCDEFG」を書き込みます。
しかし、ftell()は-12を返してきます。
0592デフォルトの名無しさん
2010/12/05(日) 13:52:12をftell()の前に入れればいいよ。
_fgettstって何なの?
0593デフォルトの名無しさん
2010/12/05(日) 14:29:330594デフォルトの名無しさん
2010/12/05(日) 14:48:19fseek( fh, 0, SEEK_END );
いれたら末尾のオフセットが返ってくるだけですよね。
読み出した後の位置を保持したいので、ダメなようです。
_fgetts()はfgetsのtcharマクロです。
test.txtは改行文字がCRLFなので、ftell()は9を返してこないといけないはずです。
……と思ったら_ftelli64()もなぜか10と返してきますね。
ccs=UTF-8を外すと、ftell()も_ftelli64()も9を返すようです。
UTF-8で開くと_chsize_s()もなぜか失敗しますし、何か変じゃないですかこれ?
0595デフォルトの名無しさん
2010/12/05(日) 17:36:49このページを参考に、プログラムを打ち込んでいたのですが。
全部打ち終わり、コンパイルすると以下のようエラーが出てしまいます。
1>main.obj : error LNK2001: 外部シンボル ""void __stdcall ATL::__FreeStdCallThunk(void *)" (?__FreeStdCallThunk@ATL@@YGXPAX@Z)" は未解決です。
1>main.obj : error LNK2001: 外部シンボル ""void * __stdcall ATL::__AllocStdCallThunk(void)" (?__AllocStdCallThunk@ATL@@YGPAXXZ)" は未解決です。
1>D:\Documents\Visual Studio 2008\Projects\ATL\Release\ATL.exe : fatal error LNK1120: 外部参照 2 が未解決です。
試しに、上のページにあるプロジェクトからもコンパイルしてみましたが、結果は同様でした。
どうすればこのエラーを解決できるでしょうか?
0596デフォルトの名無しさん
2010/12/05(日) 17:41:55たぶんライブラリーの環境設定だな。
プロジェクトをDLして比較してみ。
0597デフォルトの名無しさん
2010/12/05(日) 20:08:24atlthunk.libとリンク。
0598デフォルトの名無しさん
2010/12/05(日) 21:26:49その通りでした、
エラーなくコンパイルできました、有難うございます。
0599デフォルトの名無しさん
2010/12/06(月) 12:15:29ftell returns negative value for UTF-8 files opened with textmode and ccs
http://connect.microsoft.com/VisualStudio/feedback/details/591030/ftell-returns-negative-value-for-utf-8-files-opened-with-textmode-and-ccs#
これか
0600デフォルトの名無しさん
2010/12/06(月) 13:34:59VC++Ex2010でハードウェアからのデータを受け取り、その値を計算した数値をウィンドウ上に表示するプログラムを作成しています。
ヘッダAで変数
int Ix1,Iy1,Ix2,Iy2;
int Ix3,Iy3,Ix4,Iy4;
int Brf,Brb,Blf,Blb;
int Mrf,Mrb,Mlf,Mlb,Msum;
int Brf_offset,Brb_offset,Blf_offset,Blb_offset;
を宣言し、ハードウェアからのデータを取り込むところまで行っています。
メインでは
以上のヘッダをincludeして
HDC hdc;
RECT rt;
static char *str = "button1,button2,(double)(Msum)/100,Mrf,Mrb,Mlf,Mlb)";
を定義した状態で、
BeginPaint(hWnd, &ps);以下に
DrawText (hdc, str,-1,&rt, DT_WORDBREAK);
と記述し、コンパイルして実行すると、変数の値ではなく、"button1,button2,(double)(Msum)/100,Mrf,Mrb,Mlf,Mlb)"
がそのままテキストとして現れます。
DOS上ではprintfで問題なくハードウェアの数値が現れたので、ヘッダファイル側の問題は少ないと思います。
これらを変数の値として表示するには何が足らないもしくは間違っていたのでしょうか?
0601デフォルトの名無しさん
2010/12/06(月) 13:38:17sprintf
0602デフォルトの名無しさん
2010/12/06(月) 18:37:370603デフォルトの名無しさん
2010/12/08(水) 00:52:10ctrl+zせずにタブ閉じちゃったんですけど元に戻せませんか?
0604デフォルトの名無しさん
2010/12/08(水) 01:17:56vectorではイテレータがうまく動いてくれませんでした
0605デフォルトの名無しさん
2010/12/08(水) 03:50:32デバッグ開始 →コメントアウト
デバッグなしで開始 →コメントアウトされない
という状態にしたいのですができますか?
#if defined(DEBUG) | defined(_DEBUG)
#endif
これの逆をしたいのですが、#if !(defined(DEBUG) | defined(_DEBUG))としてもデバッグなしで開始の時もコメントアウトされてしまいました。
よろしくお願いします
0606デフォルトの名無しさん
2010/12/08(水) 06:31:580607デフォルトの名無しさん
2010/12/08(水) 10:42:350608デフォルトの名無しさん
2010/12/08(水) 15:24:29開始/デバッグなしで開始は、デバッガを使うかどうかの実行時の話
デバッグビルド/リリースビルドは、実行以前のコンパイル時の話
0609デフォルトの名無しさん
2010/12/08(水) 15:43:58シンプルに
#ifdef NDEBUG
ではダメ?
0610デフォルトの名無しさん
2010/12/08(水) 15:48:21ttp://www.geocities.jp/ky_webid/cpp/library/002.html
ここの一番下に分かりやすく解説があった
bitset使わずシンプルにchar配列でも作って0をfalse、それ以外trueでもいんでね?
0611デフォルトの名無しさん
2010/12/08(水) 18:47:29o #if !(defined(DEBUG) || defined(_DEBUG))
0612デフォルトの名無しさん
2010/12/08(水) 21:14:13記述がわかりません。
Printscreenキーを押して、全画面を保存するようなものは作ったのですが、
Alt+Printscreenで撮ったような画像を希望しています。
諸先輩方、知恵をお貸しください。
VisualStudio2008 standard(MFC)です。
0613デフォルトの名無しさん
2010/12/08(水) 21:29:120614デフォルトの名無しさん
2010/12/08(水) 21:29:48ありがとうございます
イテレータが動かないわけも解説されていて納得です
bitsetを利用してみます
0615612
2010/12/08(水) 21:34:48プログラムの画面保存だと結構サンプルがありそうなのですが、
例えば電卓とか他のウィンドウも取得しようとするとなかなか見つからなくて困っているのです。
0616デフォルトの名無しさん
2010/12/08(水) 22:09:02重なっていたら重なったままキャプチャ
いったん最小化を解除してキャプチャ後戻す
非表示のウィンドウを表示してキャプチャ後戻す
0617デフォルトの名無しさん
2010/12/08(水) 23:09:420618デフォルトの名無しさん
2010/12/09(木) 05:18:14よそでB型のポインタ変数を作ってあるのですが
Aの中だけで使われてるパブリックのメンバが->しても出てきません
アクセスする方法があったら教えてください
0619デフォルトの名無しさん
2010/12/09(木) 05:32:12ありがとうございました
0620デフォルトの名無しさん
2010/12/19(日) 15:00:43せめてdynamic_cast使え。A* a = dynamic_cast<A*>(b);
0621デフォルトの名無しさん
2010/12/20(月) 09:35:46これまでwin32concole applicationばかりつくってたけど、Qt使うために
メイクファイルプロジェクトていう形式で(よく分かってないんですが)
作り始めました。インクルードとか依存関係を指定するためにmakefileのファイル自体に
additional include, library directories, additional dependencies (XX.libとか)に関して
INCLUDEDIRS = /I "C:\boost\boost_1_38_0\include"
みたいに編集してやってもデバッグするとmakefileが元にもどってる。。。
うん、なんかとんでもない勘違いをしているようなんだけど、わけがわからないです。
メイクファイルプロジェクトでライブラリや依存を指定してやる(特にadditional dependencies )
にはどうすればいいんですか?
0622デフォルトの名無しさん
2010/12/20(月) 09:48:070623621
2010/12/20(月) 10:21:54ネットの数少ないサンプルやチュートリアルを真似てやってるんですが、Qtはビルドに
qmakeというやつを使わないといけないらしくて、それでメイクファイルプロジェクト
じゃないとだめっぽいです。というかそういう解釈をしてます。
win32concole applicationではプロジェクトのプロパティでいろいろ設定できたんですが、
メイクファイルプロジェクトではC++ generalやlinkerの設定がVCのメニューからは出来ない
みたいなんですよね。。。。
0624デフォルトの名無しさん
2010/12/20(月) 10:37:38ttp://hibari.2ch.net/test/read.cgi/tech/1292334148/
こっち行った方がいいんじゃない?
0625デフォルトの名無しさん
2010/12/20(月) 23:36:26#pragma commentあたりで代用することはできない?
0626デフォルトの名無しさん
2010/12/22(水) 05:26:52オプションで指定しちゃだめなのか?
0627デフォルトの名無しさん
2010/12/29(水) 22:40:28今までVisualC++2008使っててPC変えたから2010にしたんですけど、デバッグなしで開始てないんですかね?
Halloworldて実行したら一瞬だけ実行画面が出て勝手にウィンドウが消えるんですけど…どこの設定を弄ればいいんでしょうか
0628デフォルトの名無しさん
2010/12/29(水) 22:42:10return 0 の前にでも
iostreamインクルードして
std::cout.get();
とかでもいんでね?
0629628
2010/12/29(水) 22:42:55cin.get();
0630デフォルトの名無しさん
2010/12/29(水) 22:48:330631デフォルトの名無しさん
2010/12/29(水) 23:08:37::て演算子がちょっとよく分からなくてググったんですけど、C++じゃなくてCの勉強してます
もしC言語のことだったんなら話のレベルについていけてませんでした…C3級程度です
0632デフォルトの名無しさん
2010/12/29(水) 23:09:400633デフォルトの名無しさん
2010/12/30(木) 00:09:56ツール->設定->上級者用の設定はどう?
0634デフォルトの名無しさん
2010/12/30(木) 01:40:09うまくいきました!ありがとうございました
0635デフォルトの名無しさん
2011/01/04(火) 15:23:491. C++の言語仕様を徹底的に学習して確実に理解していく。
それまではWindowsプログラムのことは考えない。
2. MFCウィザードで作成したスケルトンコードや、MFC
のサンプルプログラムコードを解読していく。
3.解読するために、MFCのクラス階層図を確認したり、MSDN
を参照すると共に、C++の学習した知識を応用しながら、
MFCのヘッダーファイルやソースファイルも調べていく。
4. そうやって理解しながら自分の追加したい機能をどの
ようにすれば実装できるかを試行錯誤しながら検討していく。
0636デフォルトの名無しさん
2011/01/04(火) 15:43:10100%すべて完璧に理解しようとする勉強のやりかたは
おすすめできない。
必要なときに必要なことを調べられる能力の方が重要。
でもそれは人それぞれだと思うので、その方法が自分に
向いていると思えば、そうやってもいいし、興味のあるうちに
やった方がいいこともあるしね。
0637デフォルトの名無しさん
2011/01/04(火) 16:13:10そうですね。
出来る人は出来ない人に教えるって難しいのかも。
VCに関しては ダイアログベースでUIの色んなツールを
作るってのが楽しいかも。
sqliteブラウザとか楽しいのでわ?
ただC++に関しては コンソールの環境でコツコツやった方が
いいね。私はLinux使いなので、gccの環境が習得しました。
でも使えるのかどうかはわかりませんw
0638デフォルトの名無しさん
2011/01/04(火) 17:44:070639デフォルトの名無しさん
2011/01/04(火) 21:15:36クラスの手前までとプリプロセッサの処理とかをとりあえずやって、
Windows API でのプログラミング学んだ方が良いんじゃないかなぁ。
MFC は Windows API でのメッセージ処理とか標準コントロールの使い方覚えた後で
C++ のクラス勉強してその後で良いと思う。
0640デフォルトの名無しさん
2011/01/06(木) 12:12:46少なくとも2や3はしない方が良い
MFCは良質なサンプルじゃないから
0641デフォルトの名無しさん
2011/01/07(金) 09:20:12wsprintf を使うと C4995 のワーニングが出るんだが、これどうしたらいい?
無視するという方向はなしで。
0642デフォルトの名無しさん
2011/01/07(金) 09:37:400643デフォルトの名無しさん
2011/01/07(金) 10:34:580644デフォルトの名無しさん
2011/01/07(金) 11:35:12Using this function incorrectly can compromise the security of your application.
The string returned in lpOut is not guaranteed to be NULL-terminated.
Also, avoid the %s format -- it can lead to a buffer overrun.
If an access violation occurs it causes a denial of service against your application.
In the worse case, an attacker can inject executable code. Consider using one of the following alternatives:
StringCbPrintf, StringCbPrintfEx, StringCbVPrintf, StringCbVPrintfEx, StringCchPrintf, StringCchPrintfEx, StringCchVPrintf, or StringCchVPrintfEx.
0645デフォルトの名無しさん
2011/01/07(金) 11:43:05将来のバージョンで削除される可能性については一切触れてないな。
でも web 版でははっきりと使うなって書いてるな
Note Do not use. Consider using one of the following functions instead: StringCbPrintf, StringCbPrintfEx, StringCchPrintf, or StringCchPrintfEx. See Security Considerations.
0646デフォルトの名無しさん
2011/01/07(金) 13:05:15安全性の問題については知ってたんだけど、てっきり _s がついた関数があるとか、そんなんだと思ってた。
自力だったらもうしばらくたどり着けないとこだったよ。
0647デフォルトの名無しさん
2011/01/13(木) 09:16:44VC6 のかなり昔の持ってるんだけど、たまにやろうかなとは思うんだけどVBに何度も出戻りしちゃうんだよね^^;
未だによく分からない事、それはリソース(.rc)の拡張子の中身はフォームの状況とかが羅列されてい入っているみたいなのはわかった。
でもこれはクリエイトうんちゃらーというAPI使って直接書いてない気がするんです。
これの仕組みがわからないのでIDE使うのがおっかなくてしょうがないんです。
#include "afxres.h"も関係しているのかな?
この.rc は何処の何が処理してコントロールとかウィンドウになるのか?
その辺の仕組みを神様方教えて下さいませ;;
0648デフォルトの名無しさん
2011/01/13(木) 09:28:11メニューリソースというものです。
BEGIN
END
とか
MENUITEM や MENUITEM SEPARATOR
とかです。
リソースは何がどうなるとCreateWindow とかを呼んでいるに等しくなるのかが知りたいのです。
ヘッダーの中?それとも何か特別なマクロ?
この辺を是非よろしくお願いします。
0649デフォルトの名無しさん
2011/01/13(木) 09:44:03windowsの中の人が読んでちゃんとやってくれるんだよ
0650デフォルトの名無しさん
2011/01/13(木) 09:47:04えっと・・・
どの当りで何を定義してるんですか?
MSDNライブラリ見ても近しい近い何かは見つかりますが
その読み込みしている関数みたいなものの類がわかりません。
OLEとかオブジェクト関係なのでしょうか?
それともインターフェイス マップとかなんでしょうか?
今はインターフェイス マップの基礎 って所のヘルプ見てるんです^^;
見当違いのところを探すことはしょっちゅうですw
そろそろ見極めたい年頃なんです><;
良かったら何がどうなのか教えて下さい。
0651デフォルトの名無しさん
2011/01/13(木) 09:50:02なにが分からないのかわからない
0652デフォルトの名無しさん
2011/01/13(木) 09:50:39APIから打ち込むのって無意味に感じるんです。
しかしですね、細かくコントロールをカスタマイズするのなら
そのexeファイルに埋め込まれたリソースを元にしていじるのは
余計に手間なのかとかもわからないんです。
結局リソースエディターにはカスタマイズの壁があるのかどうかとか
その当りも知りたいのです。
とりあえずですね・・・ そのリソースを変換してくれる関数の名前を知りたいです。
もしくはそのリソースをインクルードしている構文です。
よろしくお願い致します。
0653デフォルトの名無しさん
2011/01/13(木) 09:58:28調べたら出てきました!
いっぱい沢山聞きたいことがあるんですが、
重要そうな要点だけお尋ねします^^;
LordMenuはWindows のコントロールの表現に限度がありますか?
例えばリージョンだけの多角形ウィンドウとかのリソースって作れるのでしょうか?
そして読み込めたりするものなのでしょうか?
どの程度までリソースを用いて開発した方が楽で、
どの程度以上は不可能か、しない方が無難でしょうか?
経験上感じた事でいいので是非お教え下さい><;
0654デフォルトの名無しさん
2011/01/13(木) 10:10:53>例えばリージョンだけの多角形ウィンドウとかのリソースって作れるのでしょうか?
無理
リソースファイルに期待しすぎじゃねーか
あんなのは使いまわしたいときにちょっとだけ楽するためのもんだ
0655デフォルトの名無しさん
2011/01/13(木) 10:36:20なるほど、有難う御座いました。
色々調べてみもみました、まとめですが、
リソースファイルはリソースエディタである程度のウィンドウが作れる
|
リソースエディタはリソースを.rc 吐き出す
|
.rcはLoadMenuで呼び出す。
|
呼び出したリソースにはリソースを作成したときに決めたIDを
ウィンドウプロシージャでキャッチして使える様になる
こんな感じのイメージでよいのでしょうか?
0656デフォルトの名無しさん
2011/01/13(木) 10:54:07下手な質問の仕方しかできないのですが、勇気を振り絞って聞いてみてよかったです。
私は全てに近いぐらい独学で学んでいます。
こんな事でも知らないだけで進めない事がいっぱいで、自分だけで調べるよりもとても為になりました。
ちょっと連絡が長い間取れなくなるので、先にお礼をさせて頂きます。
感謝しています。
本当に有難う御座いました。
0657デフォルトの名無しさん
2011/01/13(木) 10:58:11終わっていない質問などを無視してしまったかもしれませんので
しっかり書いておきます。
>>657は>>647~>>656 の質問をしている側の人間です。
>>649 >>651 >>654 様本当に有難う御座いました。
0658デフォルトの名無しさん
2011/01/13(木) 11:46:480660デフォルトの名無しさん
2011/01/13(木) 12:07:340661デフォルトの名無しさん
2011/01/13(木) 12:21:36stlのmapを使えばいい
0662デフォルトの名無しさん
2011/01/13(木) 12:22:510663デフォルトの名無しさん
2011/01/13(木) 12:30:15しかしコンパイルした時に大きさとスピードは、
自身で作ったメモリの確保、開放操作を含めたクラスと比べてどうでしょうか?
ライブラリに任せるのってなんか不安なのですが飛び越し苦労でしょうか?
0664デフォルトの名無しさん
2011/01/13(木) 12:46:41C++のバージョンによっては可変長関連の扱いが変わったコンパイラも存在している事は調べました。
私は他の言語で後から配列の大きさを変えられる言語や、配列の大きさを気にしなくて良い言語に慣れている為、
それらが可能かどうかを調べた事があり、作り方までは理解したのですが、
果たしてその自身で作る可変長配列を使うのが良いのか、良く聞くSTLをマスターして使うほうがいいのか、その辺が初心者にはわからないのです。
0665デフォルトの名無しさん
2011/01/13(木) 12:50:27一度私がやってみるべきですね。
有難う御座いました。
0666デフォルトの名無しさん
2011/01/13(木) 12:56:13自分にとって(他人にとっても)車輪作りは苦痛でしかないので
class Hoge{};
typedef shared_ptr<Hoge> HogePtr;
map<key,HogePtr> hogemap;
などとし
Hoge生成時のアロケーターにはboostのpoolでも使います
ま、お好きにどうぞ
0667デフォルトの名無しさん
2011/01/13(木) 13:37:18車輪つくりは苦痛でしかないのは、誰かに何かを追われてしまった場合でしょう。
実際物事を表現し創ることは楽しいことです。
私はデータベースのO/Rマッピングを長い間知りませんでした。
その言葉を知ってから世界観が大きく変わりました。
何か構造的なことを表現し整理がつけられる事が楽しくてしょうがありませんw
インスタンス上の話なのか、データの宣言の話なのか、インスタンス上のデータなのか
そういうことを考えるとデザインと一緒な気がします。
家具も整然としていると美しい様にw
何か綺麗に作れると、よりいっそうアイデアが湧きます!
また少し話しは変わりますが、やっぱり何を目的にして
プログラムを組むかが重要なんだとも実感しています。
他人が使うプログラムは汎用性を高めるべきだと思います。
STLが後々まで見通しが利くと思えるのならば是非使うべきだと思いました。
>>666さんサンプル有難う御座います。
しっかりと実感しながら物にしたいと思います。
0668デフォルトの名無しさん
2011/01/13(木) 14:22:00ごめん
何を言ってるのか分かんないし
何が言いたいのかも分かんない
とりあえず、頑張れ
0669873
2011/01/13(木) 15:23:08めんどくせえから、オブジェクトごとぶっこめるDB見たいの作った方がはやくね?
0670デフォルトの名無しさん
2011/01/13(木) 15:36:090671デフォルトの名無しさん
2011/01/13(木) 15:45:33どんなプログラムでも
自分で考えるのは
楽しい
0672デフォルトの名無しさん
2011/01/13(木) 16:03:080673デフォルトの名無しさん
2011/01/14(金) 10:51:36これを作るならO/Rマッピングは考えるよね?
設計=マッピングの仕方だと思う。
マッピングできる人は取り出したい取り出し方を明確に持っているという事。
これは個性そのもの、そう思う。
私は馬鹿なのだが、
私は馬鹿属性なのか? それとも馬鹿の中の部類なのか?とかいう考えか、
私は馬鹿プロパティを持つのか、馬鹿メソッド使いなのか、
捉え方そのものが個性。
>めんどくせえから、オブジェクトごとぶっこめるDB見たいの作った方がはやくね?
これが出来るのは一度何かを何度か作って、そのDBの生かし方を考えた事があるからだろうと思う。
しかし取り出し方は汎用性があってDBみたいなのを作るのが便利だが、
実質欲しいのは、私が馬鹿なのかどうか確認したいだけであり、
その汎用性だけで終わる部分は、馬鹿なのかどうか確認したい人には無駄な操作になる。
小さなことが知りたいのに大きなことを振り回すのは不便だから
それを便利に落とし込めるのは楽しいと思う。
その落とし込みも個性だと思うし、それもO/Rマッピングだと思う。
土方というのは納期があるとかデスマーチ系の職として考えた場合じゃないだろうかと思う。
私は楽しくプログラミングを覚えてしまったので、
これから職として役に立つかどうかの思想はまったく含めていないが、
あえて初めからその辛い事ばかり考えていてもIT技術者には成れないと思う。
イライラしていてはプログラムは集中して出来ないからだ。
少しばかり好き過ぎてしょうがないぐらいが一番気楽にその職に適していると思う。
自分のイラつきと向き合っていても好きな事も仕事も出来ないからだ。
0674デフォルトの名無しさん
2011/01/14(金) 11:13:30長文やめたほうがいいよ
馬鹿がばれやすくなる
全角英数もやめたほうがいいよ
この人は馬鹿なんじゃないかと穿った視点で見られるので
馬鹿がばれやすくなる
0675デフォルトの名無しさん
2011/01/14(金) 11:14:480676デフォルトの名無しさん
2011/01/14(金) 12:27:300677デフォルトの名無しさん
2011/01/14(金) 13:31:14馬鹿に思うなら思えばいいんじゃないか?
別に分からない人とやり合う事ほど馬鹿な事ないからね。
価値が見出せない人には馬鹿で上等
0678デフォルトの名無しさん
2011/01/14(金) 13:43:40短文は決め付けで終わり、内容が見えない。
長文は長いと読みにくい。
読みにくいのは敵ではない。読みにくいのは分かりにくいに繋がる。
何処が分かりにくいか聞き返すべきだ。
でなきゃ初めから話さないほうがいい。
0679デフォルトの名無しさん
2011/01/14(金) 13:48:07馬鹿の定義を教えて欲しい。
これまじめに聞いている。ふざけている訳ではない。
ふざけている様に見えるなら貴方からしてみれば私が馬鹿に見えるんだろう。
しかし私にとっては他人の評価よりも、他人が何を言いたいかの方が大事なのだ。
是非お教え願いたい。
0680デフォルトの名無しさん
2011/01/14(金) 15:15:060681デフォルトの名無しさん
2011/01/14(金) 15:31:48飛び越し苦労だ
0682デフォルトの名無しさん
2011/01/14(金) 16:29:220683デフォルトの名無しさん
2011/01/14(金) 17:19:160684デフォルトの名無しさん
2011/01/15(土) 13:36:15ソースファイル中で
#define MACRO1 "macro1"
ってやるようなことをプロパティで出来ないかなと。
やりたいことは
#define __MODULENAME__ $(ProjectName).exe
なんだけど。
0685デフォルトの名無しさん
2011/01/15(土) 13:45:02に
__MODULENAME__="$(ProjectName).exe"
を追加
0686デフォルトの名無しさん
2011/01/15(土) 14:16:43ありがとう。
0687デフォルトの名無しさん
2011/01/17(月) 13:23:45該当スレが見つからなかったので、質問です。
Microsoft Visual C++ 2010 Expressをインストールして使い始めたのですが、
このソフトにはオートコンプリート機能は無いのでしょうか?
一応、ctrl+スペースで補完自体はできるのですが、自動で補完して欲しい・・・。
なにか設定なり、プラグインなりでできるならやり方を教えてもらえませんでしょうか?
よろしくお願いします。
0688デフォルトの名無しさん
2011/01/17(月) 13:24:290689デフォルトの名無しさん
2011/01/17(月) 13:40:040690デフォルトの名無しさん
2011/01/17(月) 21:41:40メンバやらは補完してくれるから別に困ったことはないかな。
ctrl+スペースはくそおもすぎる・・・。
0691デフォルトの名無しさん
2011/01/18(火) 22:43:26があってクリップボードのダンプ見ると1バイトデータが0x3f 0x20
の2バイトに変わってこのデータをメモ帳やダイアログのエディット
ボックスにペーストすると文字化けのまま出力するけどブラウザの
上のURL入力する所にペーストすると文字化けせずに出力される
ので、文字化けを回避する方法がありそうですが、どうすれば
良いでしょうか?
0692デフォルトの名無しさん
2011/01/18(火) 22:54:020693デフォルトの名無しさん
2011/01/18(火) 23:42:23Visual C++で、PDF文書に透かし文字を設定しようとしています。
ttp://kb2.adobe.com/jp/cps/511/511269.html
上記を参考にjavascriptのflattenPagesメソッドでPDFに
アクセスできるところまではなんとか行きました
(注釈使ってないので効果はわかりませんが、リターン値は正常でした)。
そこで、本題であるaddWatermarkFromTextメソッドに変更して同じように
invokeで呼び出そうとしたのですが、このメソッドは引数が20個近くあり、
中には設定値がjavascript側のクラス定数だったりするものもあり、
VARIANT構造体にどのように設定すればよいのかさっぱりわかりません。
とくに配列?を設定するらしいaColorという引数の設定値が不明です。
これら引数の設定方法を教えていただけませんでしょうか?
よろしくお願いいたします。
なお、とりあえず引数を必須項目になっている設定文字列だけにして実行してみたところ、
処理自体は成功しました(ただし、見た目は変化なし。Acrobat Standard 8.0から透かし設定を
追加や変更しようとすると、既存の透かしを変更していいか聞かれるため、なんらかの設定はされているもよう)。
0694デフォルトの名無しさん
2011/01/19(水) 18:13:25error C2440: 'delete' : 'クラスオブジェクト' から 'void *' に変換できません。
と出ます。どうしてでしょうか。今までは同じようなことが問題なくできていました。
0695デフォルトの名無しさん
2011/01/19(水) 18:37:50int main()
{
/*
//error C2440: 'delete' : 'Hoge' から 'void *' に変換できません。
Hoge h;
delete h;
*/
//ok
Hoge *h = new Hoge();
delete h;
return 0;
}
0696デフォルトの名無しさん
2011/01/19(水) 18:55:420697693
2011/01/19(水) 22:07:020698デフォルトの名無しさん
2011/01/20(木) 01:05:100699デフォルトの名無しさん
2011/01/21(金) 17:30:41vc 6.0 のプログラムを 2005 vc に変換しようとしています。
> DialogBox( hi, "DLG_DATA", HWND_DESKTOP, (DLGPROC)dlgproc );
>1>c:\users\新しいフォルダー (13)\9章\list0910\list0910.cpp(11) : error C2664: 'DialogBoxParamW' :
2 番目の引数を 'const char [9]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
なんか良くわからん よろ
スレチと言われ此方に来ました。
0700デフォルトの名無しさん
2011/01/21(金) 17:34:35プロジェクト>プロパティ>全般あたりの文字セットをマルチバイトに
0701デフォルトの名無しさん
2011/01/21(金) 18:15:16流石だぜ 有難う 無事実行出来ました。
今まで、途方にくれていました。
何のエラーか?分からなかっただけ助かりました。
unicodeからマルチバイトに変換?
違いが分からない・・・ orz
0702デフォルトの名無しさん
2011/01/21(金) 19:56:320703デフォルトの名無しさん
2011/01/21(金) 20:20:480704デフォルトの名無しさん
2011/01/21(金) 20:32:480705デフォルトの名無しさん
2011/01/21(金) 20:33:490706デフォルトの名無しさん
2011/01/21(金) 20:34:43ソースを配布: rc必要
とえすぱ
0707デフォルトの名無しさん
2011/01/21(金) 20:36:120708デフォルトの名無しさん
2011/01/21(金) 20:41:17今まで、シュミで、XP+VC++6.0で開発してたんだけど、
今度PCを新調して(Windows7)、んでVS2005を中古で買おうとおもっているんだけど
なんか調べたらVS2005からUnicodeプロジェクトになるらしいんだ。
んで、そのVS2005でUnicodeプロジェクトで作ったVC++のアプリって(あ、ネイティブのね)
XPのマシンでは文字化けしたりしちゃうんかな?XP用にShift_JISの文字列を受け取ったら
Unicodeに変換するとかそういう関数っているのかな?
0709デフォルトの名無しさん
2011/01/21(金) 20:57:380710デフォルトの名無しさん
2011/01/21(金) 21:30:05文字の変換はファイルからとか外部からデータを取り込んだときに必要。
SJIS<->UNICODEの変換関数はある。
0711デフォルトの名無しさん
2011/01/21(金) 21:32:04そう。
0712デフォルトの名無しさん
2011/01/21(金) 21:34:28日本語扱ってるアプリケーションなら
日本語版OSで使う限り問題ない。
他言語版OS使うと適切に文字が表示されない。
あ、ASCIIコードについては正しく表示される。
0713707
2011/01/21(金) 21:37:41exeを他の場所に移しても作動した。
0714デフォルトの名無しさん
2011/01/21(金) 21:44:13ちゃんと取り込まれてるよ
0715デフォルトの名無しさん
2011/01/21(金) 21:44:51つ ttp://itpro.nikkeibp.co.jp/article/OPINION/20060427/236520/
0716デフォルトの名無しさん
2011/01/21(金) 21:52:02内容ちゃんと読まずにレスしてしまったわ
反省
Unicode でビルドし直すんだな。
Shift-JIS で受け取った文字列は
内部で使う限りは変換は必要ないよ。
っていうか、Unicode文字列を使う設定でプロジェクトを構成しても
Unicode 全く使わないフルマルチバイトプログラムくめるし、
それは正当なプログラム。
デフォルトで Unicode になってるのは
たとえば、MessageBox とかのジェネリックプロトタイプを
MessageBoxW に置き換えたりするだけだから。
0717デフォルトの名無しさん
2011/01/21(金) 22:08:25高確率でコンパイルが通らないと思う。
コンパイル通っても、バグってる確率高い。
0718デフォルトの名無しさん
2011/01/21(金) 22:09:09>たとえば、MessageBox とかのジェネリックプロトタイプを
>MessageBoxW に置き換えたりするだけだから。
それには何の意味があるのですか?
0719デフォルトの名無しさん
2011/01/21(金) 22:20:09残念だけど実際にそういう名前のAPIは存在しない。
MessageBoxA か MessageBoxW
A がマルチバイト(日本語版では Shigy-JIS として扱われる)
W が unicode 版
プロジェクトの設定は単にこれを切り替えるだけのもの。
これは、ほかの文字列を引数に取るAPIに共通している。
ただし、Vista 以降は A も W もつかない Unicode 版のみが追加され始めてる。
0720デフォルトの名無しさん
2011/01/21(金) 22:33:170721デフォルトの名無しさん
2011/01/21(金) 22:49:030722デフォルトの名無しさん
2011/01/22(土) 01:18:39fread使うのと何が違うんですか?
0723デフォルトの名無しさん
2011/01/22(土) 11:24:170724デフォルトの名無しさん
2011/01/22(土) 12:45:24レスありがとうございました。
参考にします。
0725デフォルトの名無しさん
2011/01/22(土) 21:30:15と
int *a;
の違い、使い分け方を終えてください。
0726デフォルトの名無しさん
2011/01/22(土) 21:35:53それだけ
0727デフォルトの名無しさん
2011/01/22(土) 21:41:22int *a, b;
int *a, *b;
int* a, *b;
0728デフォルトの名無しさん
2011/01/22(土) 21:43:07見た目的には上はint*型という認識をしやすい
しかし、あくまで*の付いてる変数しかポインタにはならない(例 int* a, b;)
下はint型のポインタ変数と認識するかもしれない(上の認識の方が正しい)
ただ、上のような例で誤解が少なくなる
0729デフォルトの名無しさん
2011/01/22(土) 22:01:50ということは
複数のポインタ変数を宣言する場合ではない限り
変数名の方をメインに使ったほうが
いいのかもしれませんね。
int* a, b; // success
int *a, *b; // success
void test::func( int *a, int *b ); // success
void test::func( int* a, b ); // fault
ありがとうございました。
0730デフォルトの名無しさん
2011/01/22(土) 22:06:35それは趣が異なる
0731デフォルトの名無しさん
2011/01/22(土) 22:17:500732デフォルトの名無しさん
2011/01/22(土) 22:32:23趣が異なる、というのはどういう意味でしょうか?
ビルドが通らなかったので
そういった記述ができないものと理解したのですが・・・。
0733デフォルトの名無しさん
2011/01/22(土) 22:40:310734デフォルトの名無しさん
2011/01/22(土) 22:46:24b のデータ型が指定されてないだろう。
なんか最近何を狙ってるのかわからんが
わかってて質問してる変なやつがいるのかな
0735デフォルトの名無しさん
2011/01/22(土) 23:36:37複製したプロジェクトのフィルターのGUIDが一致してたら
何か問題はあるでしょうか?
コンパイルは通るので問題はないかと思っているのですが気になります。
0736デフォルトの名無しさん
2011/01/23(日) 00:04:24ソリューション内で同一GUIDのプロジェクトは管理出来ない
0737デフォルトの名無しさん
2011/01/23(日) 00:09:14コミュニケーションがとりたかったんだろ。
「こんなコード書いたけどどうっすか?」みたいな。
ググればすぐ分かるのに質問してくる初心者とか、
結論がでてるのにとぼけて質問してるようなやつとか、寂しいからだろ。
0738デフォルトの名無しさん
2011/01/23(日) 00:15:27指摘すると釣れちゃっただし
そんなのを相手にしても何一つ得られる物はないからほっとくのがいいね
0739デフォルトの名無しさん
2011/01/23(日) 00:20:29IDEが勝手にGUIDを生成しなおすから問題にはならない
0741デフォルトの名無しさん
2011/01/24(月) 13:10:49ピクチャボックスへ画像を表示したいのですが、
OnInitDialogで
CWindow imageBox = GetDlgItem(IDC_PICT);
HDC hdc = imageBox.GetDC();
HDC memory_dc = CreateCompatibleDC(hdc);
SelectObject(memory_dc, m_image);
BitBlt(hdc,0,0,bitmap.bmWidth,bitmap.bmHeight,memory_dc,0,0,SRCCOPY);
DeleteDC(memory_dc);
と書きましたが全く描画されません。
メンバ変数の作成もできず途方に暮れてます。
何か参考となる情報はありませんでしょうか。
0742デフォルトの名無しさん
2011/01/24(月) 15:24:46CStatic s = GetDlgItem(IDC_PICT);
LONG style = (LONG)::GetWindowLong( s.m_hWnd, GWL_STYLE );
style = ( style & 0xfffffff0 ) | SS_BITMAP;
::SetWindowLong( s.m_hWnd, GWL_STYLE, style );
s.SetBitmap(
::LoadBitmap(
(HINSTANCE)::GetWindowLong(m_hWnd,GWL_HINSTANCE),
MAKEINTRESOURCE(IDB_BITMAP1)));
0743742
2011/01/24(月) 15:29:230744デフォルトの名無しさん
2011/01/24(月) 15:33:500745デフォルトの名無しさん
2011/01/24(月) 16:27:55お二方ともありがとうございます。
早速参考にさせていただこうと思いましたが、
atlctls.hが見つからずInclude出来ません。
過去にCStaticを使おうとした際にも同じ問題にあたりました・・・。
画像を表示させたければWTLにする必要がある、ということでしょうか?
また、環境はVisualStudio2008Proです。
0746デフォルトの名無しさん
2011/01/24(月) 17:02:21> WTLにする必要がある、ということでしょうか?
そんなこと無い。
Win32APIを直接呼び出すなり
リソースエディタのプロパティで設定すればいい
0747デフォルトの名無しさん
2011/01/24(月) 20:22:00やってみたことは相対パスでUrlプロパティに[./test.html]と入力したのですが、相対URLにナビゲートできませんと出ます。
test.htmlを表示させる方法があれば教えていただけませんか。
0748デフォルトの名無しさん
2011/01/24(月) 20:31:00IEコンポはそんな気の利いたことしてくれんぞ
0749デフォルトの名無しさん
2011/01/24(月) 21:54:46そのファイルはどこに置けばいいのでしょうか?
ファイルがない状態でデバッグすると「0x004121a7 でハンドルされていない例外が発生しました」と表示されます。
0750デフォルトの名無しさん
2011/01/24(月) 22:29:36vista とか 7なら、エクスプローラーでそのファイルのあるフォルダを
ひらいて、うえのコンピュータ > OS(C:) > tmp みたいな表示のあるところを
クリックしたら c:\tmp\ とか表示されるから、それをコピペして、
fopen("c:\\tmp\\xxx", "rb") みたいにファイル名の前につける。
0751デフォルトの名無しさん
2011/01/24(月) 22:33:100752デフォルトの名無しさん
2011/01/25(火) 18:55:061文字だとOK、2文字以上だとしれっと全然違う値を返してきます。
一体何が原因なんでしょうか?
0753デフォルトの名無しさん
2011/01/25(火) 19:40:190754デフォルトの名無しさん
2011/01/25(火) 21:55:42簡単に作れるでしょうか?
0755デフォルトの名無しさん
2011/01/25(火) 22:07:390756754
2011/01/25(火) 22:30:430757デフォルトの名無しさん
2011/01/26(水) 00:49:39こんな感じだったと思う
0758デフォルトの名無しさん
2011/01/27(木) 14:28:55まずどういうものをつくろうとすれば勉強になりますか?
0759デフォルトの名無しさん
2011/01/27(木) 14:45:230760デフォルトの名無しさん
2011/01/27(木) 15:32:500761デフォルトの名無しさん
2011/01/27(木) 15:50:01はっきり言おう、何が作りたいか分からない場合、勉強しても続かないか中断する。
強いて上げるなら、入門書の問題やれ、それを書き換えた応用しろ。
0762デフォルトの名無しさん
2011/01/27(木) 16:46:47テキストを読み込んで、文字コード変換するプログラムなんてどですか?
基本はフィルターとかコンバーターではないかと。
0763デフォルトの名無しさん
2011/01/29(土) 15:56:360764デフォルトの名無しさん
2011/01/31(月) 18:52:500765デフォルトの名無しさん
2011/01/31(月) 19:27:35こちらのサイトを参考にオセロのプログラミングを作成しようと奮闘しているのですが、
「AppWizard でプロジェクトを作成する」の手順6まで進め、ビルドし実行しようとしても、
「INK : fatal error LNK1104: cannot open file "Debug/Osero.exe"
Error executing link.exe.」となり、先に進めません。
様々なサイトを参考にし奮闘しているのですが、昨日丸一日かかっても解決できなかったので、質問させて頂きました。
Visual C++ 6.0 Standard Edition
VC++6.0 ServicePack 6
Platform SDK February 2003
DirectX 9.0 SDK Summer2004
こちらはインストール済みです。本当に困っています。どなたかご教授お願いします。
0766デフォルトの名無しさん
2011/01/31(月) 19:45:360767デフォルトの名無しさん
2011/01/31(月) 21:02:38まさかそのサイトで筆おろしとか
0768デフォルトの名無しさん
2011/01/31(月) 21:05:590769デフォルトの名無しさん
2011/01/31(月) 21:06:38Osero.exeを起動したままビルドしようとしてるってオチか
0770デフォルトの名無しさん
2011/01/31(月) 21:16:000771デフォルトの名無しさん
2011/01/31(月) 21:41:44こんな感じにやってます cl /c ./hoge/hoge.cpp
そのままだとオブジェクトがカレントディレクトリに作成されてしまうのですが
これをサブの方に出力する方法はありますか?
0772デフォルトの名無しさん
2011/01/31(月) 21:49:01ideで可能だから当然可能だな
0773デフォルトの名無しさん
2011/01/31(月) 22:01:43cl /c ./hoge/hoge.cpp /link /OUT:./hoge/hoge.exe
IDEを使った方がいいよ
せめてmakefileを書いたほうがいいよ
0774デフォルトの名無しさん
2011/01/31(月) 22:06:060775デフォルトの名無しさん
2011/01/31(月) 22:13:19すみません出来ました。
実はmakefileの作成過程で気になったことだったのですが
/foオプションで出来ました
msdnは見てたんですが説明がただオブジェクトを作成するみたいに
素っ気なかったのでついスルーしていました
ありがとうございました
0776デフォルトの名無しさん
2011/01/31(月) 22:16:05正確には/Foでした申し訳ないです
0777デフォルトの名無しさん
2011/01/31(月) 22:16:26すまん
流し読みしてた
0778デフォルトの名無しさん
2011/01/31(月) 22:26:33$(CPP) $(CPPFLAGS) /Fo"$*.obj" /Fd"$*.pdb" /FAs $<
0779765
2011/02/02(水) 02:42:02無事にオセロを作ることができました。お騒がせしました。
上の内容で続けて質問させて頂きたいのですが、
コンピューターが1手を打つまでに掛かった処理時間の計測を行いたいのです。
ネットで調べていろいろなプログラムを追加して試したのですが、なかなか上手くいきません。
ご教授頂けないでしょうか。
0780デフォルトの名無しさん
2011/02/02(水) 03:15:260781デフォルトの名無しさん
2011/02/02(水) 03:19:38つ ttp://www.bugbearr.jp/?C%E8%A8%80%E8%AA%9E%2F%E6%97%A5%E6%99%82
0782デフォルトの名無しさん
2011/02/03(木) 13:43:34プラグイン内部からHttpSendRequestでサーバへデータをPOSTすると、
IE側のセッションが切れてしまいます。
何かいい回避策はありませんでしょうか・・・。
0783デフォルトの名無しさん
2011/02/03(木) 14:40:270784デフォルトの名無しさん
2011/02/03(木) 18:14:440785デフォルトの名無しさん
2011/02/03(木) 22:48:12> コンピューターが1手を打つまでに掛かった処理時間の計測を行いたいのです。
GetTickCount か GetTickCount64 を開始前と開始後にとってその差分を累積。
数字は1ミリ秒単位だけど、実際の分解能は15ミリ秒だったか16ミリ秒だったかなので、
細かい数字に期待しないこと。
もっと細かい数字を出したければ Multimedia API を使って分解能をあげなきゃいけない。
0786デフォルトの名無しさん
2011/02/05(土) 14:07:35ありがとうございます。
結局同一サイト(&API側)への接続では問題回避できなかったので、
サイトとWebAPIを別アプリケーションにしました・・・。
あと、インストーラーをmsi形式で作成したのですが、
インストール直後はプラグインが有効になりません。
何か設定やコーディングが必要なのでしょうか?
0787デフォルトの名無しさん
2011/02/05(土) 23:50:000788デフォルトの名無しさん
2011/02/06(日) 00:53:59日付はうまく取得できてそうなんですが、どうも文字化けしてしまいます。
悪い点ご教授願えないでしょうか。
-----------------------
WORD *pText;
…メモリ確保
GetLocalTime(&stTime);
*pText = stTime.wYear; //ここでは値入っていました
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT , hText);
CloseClipboard();
-------------------------
0789デフォルトの名無しさん
2011/02/06(日) 01:05:37ソースを全部貼らないこと
0790デフォルトの名無しさん
2011/02/06(日) 01:12:39hTextがどんなものか分からないので答えようが無いです
http://wisdom.sakura.ne.jp/system/winapi/win32/win90.html
http://homepage2.nifty.com/c_lang/sdk/sdk_94.htm
これらを読んでも理解できないなら
省略せずに張ってください
0791デフォルトの名無しさん
2011/02/06(日) 01:52:006.0 の時はあったのに。
0792デフォルトの名無しさん
2011/02/06(日) 01:52:490793デフォルトの名無しさん
2011/02/06(日) 12:26:51>>790
お返事ありがとうございます。悪いところを勝手に推定してしまいました。
ご教示いただけると助かります。
----------------------------------
HGLOBAL hText;
WORD *pText;
SYSTEMTIME stTime;
hText = GlobalAlloc(GHND, 3);
pText = (WORD *)GlobalLock(hText);
GetLocalTime(&stTime);
*pText = stTime.wYear;
GlobalUnlock(hText);
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT , hText);
CloseClipboard();
----------------------------------
環境:Visual C++ 2008 Express
0794デフォルトの名無しさん
2011/02/06(日) 12:42:12文字列にしてやらないとちゃんと表示してくれない
char *pText = (char*)GlobalLock(hText);
sprintf(pText, "%d", stTime.wYear);
0795デフォルトの名無しさん
2011/02/06(日) 15:25:32でました!超初心者ですみません。勉強になりましたありがとう!
0796デフォルトの名無しさん
2011/02/06(日) 18:18:220797デフォルトの名無しさん
2011/02/08(火) 20:26:51現在、WinINETを用いてX-WSSE認証のヘッダを追加してサーバへ送信しようとしています。
IE8の環境では正常にヘッダが追加されますが、
IE7の環境だとHttpAddRequestHeadersの際に「ERROR_HTTP_HEADER_NOT_FOUND」(12150)のエラーとなります。
> ret = ::HttpAddRequestHeaders(hRequest,pszContentType,lstrlen(pszContentType), HTTP_ADDREQ_FLAG_ADD_IF_NEW);
最後のフラグ、HTTP_ADDREQ_FLAG_ADD, HTTP_ADDREQ_FLAG_REPLACEなども試しましたがだめでした。
IE8の環境だと全く問題なく通るのですが・・・。
何か方法がありましたらご教授下さい。
0798デフォルトの名無しさん
2011/02/08(火) 20:58:130799デフォルトの名無しさん
2011/02/09(水) 21:36:31すっごく時間かかる時と、全然かからない時があるんだけど、
あれって、どういう仕組みなんすか
使い勝手良くないんですが・・
0800デフォルトの名無しさん
2011/02/09(水) 21:47:02それかたくさんのソースからインクルードされてるヘッダ弄ったり
0801デフォルトの名無しさん
2011/02/09(水) 21:55:09Makefileで一発環境とか出来ないかなぁ
0802デフォルトの名無しさん
2011/02/09(水) 21:57:150803デフォルトの名無しさん
2011/02/09(水) 22:22:56う〜ん・・つまりヘッダに追加修正とか行った場合は、プリコンパイルヘッダが
無効になっちゃうからビルドしなおすことになる、、、ということ?
確かに、ヘッダをいじることもありますけど。。
0804デフォルトの名無しさん
2011/02/09(水) 22:29:15例えばa.cppとb.cppの両方がc.hをインクルードしている場合
c.hを書き換えるとa.cppとb.cpp両方の再コンパイルが必要になるから遅くなる
0805デフォルトの名無しさん
2011/02/10(木) 00:01:30system("cls");
だとログまで消えてしまうんですけど、ログを残しつつ画面を綺麗にするコマンドがあれば教えてください。
0806デフォルトの名無しさん
2011/02/10(木) 07:27:52clsで消えるのは画面だけの筈だが、あなたの言うログってどれのこと?
0807デフォルトの名無しさん
2011/02/10(木) 12:12:300808デフォルトの名無しさん
2011/02/10(木) 12:32:190809デフォルトの名無しさん
2011/02/10(木) 21:06:23http://msdn.microsoft.com/ja-jp/library/ms185291(v=VS.90).aspx
↑のように手動でもいいのですが。(これはC#用ですよね?)
もしくは、自分でAppWizardを作る方法があれば教えてください。
オープンソースのWTLプロジェクトのAppWizardをパクろうとしましたが難解で挫折しました。
0810デフォルトの名無しさん
2011/02/12(土) 13:21:57「メモリ不足のために新しい文字列を挿入できない場合は、CB_ERRSPACE を返します」
なんて書いてあるんですけど、こんなエラーも皆さんちゃんとチェックしてますか?
CComboBox::InsertStringに限らず、この手の戻り値は結構あるようですが、
InsertStringできるところまで来ているのに新しい文字列が追加できない
という状態なんて、出会ったこと無いのですが。
0811デフォルトの名無しさん
2011/02/12(土) 13:24:520812デフォルトの名無しさん
2011/02/13(日) 11:42:02私は関数の引数が無い場合には(void)と記述するのですが
知り合いからそれは間違っている( )にしろと言われました。
私の記述は間違っているのでしょうか?
またどうして間違っていると言われたのでしょうか?
0813デフォルトの名無しさん
2011/02/13(日) 11:55:54とはいいつつ、派生クラスでのvirtualや基底クラスのメンバ呼び出しのthis->とかは
冗長とわかっていてもあえてつけたほうがいいといわれることもある。
なんにせよそういう時はC++ Cording Standardsの教えが役に立つ。
そういう瑣末な違いは長々と議論するに値しない。
まともなプログラマはどんなスタイルでも読めるものだし
ひとつのソースファイルの中で一貫性が保たれていればそれで十分だ。
0814デフォルトの名無しさん
2011/02/13(日) 12:04:25081532
2011/02/13(日) 12:11:10子スレッドから、メインスレッドのGUI部品へのアクセスするために、デリゲートのサポートってありますか?
C#やC++/CLIではデリゲート使えるけど、純粋なWin32アプリだとどうなんでしょーか。
0816デフォルトの名無しさん
2011/02/13(日) 12:46:38メインスレッド?で処理をしたければ、ウィンドウメッセージを送って処理をさせるとか。
0817デフォルトの名無しさん
2011/02/13(日) 12:48:080818デフォルトの名無しさん
2011/02/13(日) 12:49:31はい、そうです。
>メインスレッド?で処理をしたければ、ウィンドウメッセージを送って処理をさせるとか。
なるほど!WM発行すればメインスレッドで拾えそうですね。考え落ちしてた;;
0819デフォルトの名無しさん
2011/02/13(日) 22:20:51質問をするのも初めてなので、意味がわからなかったら申し訳ありません。
環境は下記だと思います。
Windows7
visual studio 2005
C++ win32(MFC?
ダイアログボックスのクラスDialogを作成し、メイン関数で下記のコードを書きました。
testdialog = new Dialog;
testdialog->Create(IDD_DIALOG1, CWnd::GetDesktopWindow());
testdialog->ShowWindow(SW_SHOW);
このコードでダイアログボックスが開き、こちらからボタンを押すことができると思ったのですが、
実際にデバッグしてみると、ダイアログボックスはビジー状態で、中身のボタンなどは表示されませんでした。
また、コードを抜けたあとすぐにダイアログボックスは消滅してしまいます。
何が足りないのか教えてください。
たぶん提示する情報が足りないと思うので、それについてもご教授ください。
0820デフォルトの名無しさん
2011/02/13(日) 22:29:27もしCreateでダイアログボックス作るならメッセージループ作らないと
0822デフォルトの名無しさん
2011/02/13(日) 22:39:450823デフォルトの名無しさん
2011/02/13(日) 23:34:18ネットで拾った方法1//error c2664
CString cstr;
std::string str(cstr);
ネットで拾った方法2//error c2679
CString cstr;
std::string str = static_cast<LPCTSTR>(cstr);
いったんchar[]などにしてみたんですがどうもうまくいきません。
0824デフォルトの名無しさん
2011/02/13(日) 23:36:570825デフォルトの名無しさん
2011/02/13(日) 23:39:120826デフォルトの名無しさん
2011/02/13(日) 23:39:400827デフォルトの名無しさん
2011/02/13(日) 23:41:450828デフォルトの名無しさん
2011/02/13(日) 23:52:30error C2440: '型キャスト' : 'CString' から 'char *' に変換できません。
>>826
できたのですが、今度はwstringからstringの変換ができません…orz
>>827
ネットで拾った方法2で試してみました(error c2679 )
0829デフォルトの名無しさん
2011/02/14(月) 00:04:15>>826が成功したんなら設定がunicode文字セットを使うになってるはず
マルチバイト文字セットを使うに変更すればstd::stringでも通るよ
0830デフォルトの名無しさん
2011/02/14(月) 00:06:570831デフォルトの名無しさん
2011/02/14(月) 00:07:40できました!ありがとう
0832デフォルトの名無しさん
2011/02/14(月) 01:54:170833デフォルトの名無しさん
2011/02/14(月) 01:59:440834デフォルトの名無しさん
2011/02/14(月) 13:36:38一応Windowsの事も入ってる質問なんでこっちで。
C++でクラスを自作して遊んでるんだが
クラスの中にウィンドウメッセージ(例えばWM_PAINT)の
処理の部分を書くってできる?
例えばビットマップを表示するクラスで
クラス内に「メインになるウィンドウにWM_PAINTが送られたら、ビットマップを表示するメンバ関数を実行」
ってな具合に。
とりあえず、今はメインウィンドウのWM_PAINTの所からビットマップ表示のメンバ関数を呼んでるんだが。
こういうことって、なんていう言葉で検索すればいいの?
下らん質問ですいませんが。
0835デフォルトの名無しさん
2011/02/14(月) 16:25:43bind
emit
0836819
2011/02/16(水) 02:25:51testdialog = new Dialog;
testdialog->DoModal(IDD_DIALOG1, CWnd::GetDesktopWindow());
testdialog->ShowWindow(SW_SHOW);
上記のコードで生成したダイアログボックスのOKボタン(キャンセルボタンでも)を押すと、
Debug Assertion Failed!
Program F:\.......\MyProject.exe
File: F:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\winocc.cpp
Line: 329
上記のエラーが出てしまいます。(無視ボタンを押すとデバッグは先に進みます)
どちらのイベントハンドラはリソースから追加しました。
void myClass::OnBnClickedCancel()
{
OnOk();
}
特に初期化なども行っていません。
このエラーの原因はなんなのでしょうか?
0837デフォルトの名無しさん
2011/02/16(水) 02:29:070838デフォルトの名無しさん
2011/02/16(水) 02:38:260839デフォルトの名無しさん
2011/02/16(水) 03:22:250840デフォルトの名無しさん
2011/02/16(水) 04:16:310841デフォルトの名無しさん
2011/02/16(水) 09:57:590842デフォルトの名無しさん
2011/02/16(水) 13:29:030843デフォルトの名無しさん
2011/02/17(木) 15:06:09GUIのコントロール(ボタン等)のプロパティにあるlocationについての質問です
例えばFormのサイズが300,200(pixel)だったとして
そこにButtonのサイズ100,30(pixel)を2つ付けるとします
これを左右均等に配置する場合
Button1のlocation(50,130)
Button2のlocation(150,130)
とした場合、縦方向は考えずに横方向だけ考えた場合真ん中ではないのでしょうか?
ツールバーのレイアウトでこのボタン2つ選択後、左右中央揃えした場合
Button1のlocation(46,130)
Button2のlocation(146,130)
みたいなことになります
(座標とサイズpixelで計算してるからおかしいことになる?)
直接手動で計算してもコントロールの配置(location位置)を出したいので
どういう仕組みで配置計算されているのか教えてください
0844デフォルトの名無しさん
2011/02/17(木) 15:30:01枠のサイズとか
0845デフォルトの名無しさん
2011/02/17(木) 16:20:53void assyuku(char *data);
void kaito(char *data);
って感じの奴があればベストなんですが。
0846デフォルトの名無しさん
2011/02/17(木) 16:30:597-zip
0847デフォルトの名無しさん
2011/02/17(木) 16:40:52ありがとうございます。
調べてみます。
0848845
2011/02/17(木) 16:58:09ソースを公開しなくてもいい方法ってないですか?
0849デフォルトの名無しさん
2011/02/17(木) 18:09:580850デフォルトの名無しさん
2011/02/17(木) 21:08:090851デフォルトの名無しさん
2011/02/18(金) 00:35:437-zip使うならlzmaかxzでも良いかもね。
0853デフォルトの名無しさん
2011/02/18(金) 11:31:17メモリに読み書きできる版ってありますか?
0854デフォルトの名無しさん
2011/02/18(金) 12:44:200855デフォルトの名無しさん
2011/02/18(金) 13:17:15fstream の方がいんですか。
0856853
2011/02/18(金) 13:20:45レスありがとうございます。
ifstream調べたけどメモリに読み書きする機能が分かりませんでした。
やっぱ自分で作るしかないのかな。
0857デフォルトの名無しさん
2011/02/18(金) 14:01:03一応
ttp://codepad.org/q0eT50RI
0859デフォルトの名無しさん
2011/02/18(金) 19:41:23毎度同じダイアログボックスをつかうので、リソースエディタで一々作っていると馬鹿らしくなります。
前のプロジェクトのダイアログボックスをインポートというか追加できないんでしょうか?
「プロジェクトへ追加→ファイル(F)」でリソーススクリプトとresource.hを追加したんですが、
インクルード ファイルがオープンできません。'resource.h': No such file or directory
↑のエラーがでます。。
どうやればいいんでしょうか?VC++6.0使用です。
0860デフォルトの名無しさん
2011/02/18(金) 21:06:200861853
2011/02/18(金) 21:09:55これで公開できたかな?
http://codepad.org/6NrXVlY6
0862デフォルトの名無しさん
2011/02/18(金) 21:58:250864デフォルトの名無しさん
2011/02/20(日) 17:32:55.59あげる(薄くする)と言うプログラムを組んでいます。
フォームのMouseLeaveイベントと、MouseEnterイベント発生時にOpacityプロパティ
を変えることで解決を目論んだのですが、ウインドウの外枠(サイズを変えるときにド
ラッグする部分や、上部のウインドウ名が書かれている部分)にマウスがあると、
MouseLeaveイベントが発生して、薄くなってしまいます。フォームから完全にマウス
カーソルがそれた時のみ透明度を高めたいのですが、どういうイベントを用いればよ
いんでしょうか?
0865デフォルトの名無しさん
2011/02/20(日) 18:00:08.790866デフォルトの名無しさん
2011/02/20(日) 23:13:54.56ウィンドウに対して取得する必要がある
0867859
2011/02/20(日) 23:18:50.68亀ですが、できました。普通にresource.hをコピペするだけでいいんですね。
なんか、プロジェクトとの関連付け?とかいるのかなあと思いつつ、普通にコピペしてコンパイルしたら
通りました・・
ありがとうございました。なんか、拍子抜けっす。自分、素人なんで・・
0868デフォルトの名無しさん
2011/02/20(日) 23:52:20.70順番にアクセスしていくと、なぜか[1370][0]でエラーになってしまいます。
この配列を静的に[2000][50]の大きさで確保すると、[1370][0]でエラーにならないので
おそらく配列の確保の方法に問題があると思うのですが、何が悪いのか見当がつく方はいらっしゃいませんか?
確保は下記の3パターンで行いました。
char **char_matrix;
char_matrix = (char **)malloc( 16384 );
for(int i=0; i<16384; i++) char_matrix[i]=(char *)malloc( 128 );
char **char_matrix = new char*[ 16384 ];
for(int i=0; i<16384 ; i++) char_matrix[i]=new char[ 128 ];
char char_matrix[2000][50];
0869デフォルトの名無しさん
2011/02/21(月) 00:07:00.300870デフォルトの名無しさん
2011/02/21(月) 00:09:23.94fopen_s(fp, "ファイル名","w");
で、ファイルの作成先がCDの場合はどうなるのでしょうか?
0871デフォルトの名無しさん
2011/02/21(月) 00:25:33.03newは成功してるかチェック済み?
済みでアクセス時におかしくなるなら
入ってるデータがおかしいんだろ。
>>870
ファイル名直書きでいいんじゃね?
0872デフォルトの名無しさん
2011/02/21(月) 00:27:44.50エラーになるんじゃね。
0873868
2011/02/21(月) 01:06:04.54newは成功しています。
初期値の代入時にエラーになるので、入ってるデータではないと思います。
また、順にアクセスしている間に他で動的確保はしていません。
デバッグでchar_matrix[0][0]をウォッチしていたら
char_matrix[1024][0]にアクセスすると式が評価できなくなりました。
このあたりが関係あるのでしょうか。
また、char_matrix[1370][0]はfscanfを使ったときに評価できなくなります。
ただ、このfscanfは成功しています。
0874868
2011/02/21(月) 01:13:01.960875デフォルトの名無しさん
2011/02/21(月) 01:15:55.74なんか関係ないところでやっちゃってんじゃね?
//確保
char **char_matrix = new char*[ 16384 ];
for( int i = 0; i < 16384; i++ )
{
char_matrix[i] = new char[ 128 ];
}
//初期化
for( int i = 0; i < 16384 ; i++ )
{
for( int j = 0; j < 128 ; j++ )
{
char_matrix[i][j] = 0;
}
}
0876デフォルトの名無しさん
2011/02/21(月) 20:44:05.85error MSB6001: "icl.exe" のコマンド ライン スイッチが無効です。パラメーター "path" の長さを 0 にすることはできません。
と出て正常にコンパイルできません。ググったりしたのですが当該なものが見つからず・・・これってどう回避すれば良いのでしょうか?お願いします。
0877デフォルトの名無しさん
2011/02/21(月) 23:54:40.63このとき、VC++でコンパイルしてできたexeファイルはWindows98やXPでも実行可能なのでしょうか?
0878デフォルトの名無しさん
2011/02/22(火) 00:10:41.220879デフォルトの名無しさん
2011/02/22(火) 00:12:52.120880デフォルトの名無しさん
2011/02/22(火) 00:32:57.7998がサポートされるのは2005まで。
2000がサポートされるのは2008まで。
XPがサポートされるのVC6のみ
0881877
2011/02/22(火) 07:29:13.28ありがとうございます。
VC++2005を使ってみます。
98で動くかどうかは実際に入れてみるしか確認する方法はないのでしょうか?
それとも、2005で開発すればほぼ確実に動きますか?
0882デフォルトの名無しさん
2011/02/22(火) 07:37:55.170883デフォルトの名無しさん
2011/02/22(火) 11:35:56.680884デフォルトの名無しさん
2011/02/22(火) 14:49:01.25なんて人はWin98で動くかどうかなんて気にしなくていい
0885877
2011/02/22(火) 18:41:12.57今の自分の知識ではターゲットマシンを設定することができないのですが、
参考になる教材やウェブサイトがあったら教えていただけませんか?
>>884
最終的にWin98で動く業務アプリケーションが開発できたらいいなと考えています。
全然わからないのですが、例えば、実装環境と動作環境が違うと動かなかったり、
MFCを使ってコードを書くとWin98で動かないのかなと疑問に思い質問させていただきました。
実装環境はWin7、VC2005しか利用できず、
現状ではWin98が手元に無いため、確認しながら実装することができません。
0886デフォルトの名無しさん
2011/02/22(火) 18:45:12.340887デフォルトの名無しさん
2011/02/23(水) 09:45:02.170888デフォルトの名無しさん
2011/02/23(水) 17:36:30.85次はCOM、ATL、ActiveXに挑戦します。これで、僕のWindowsプログラムも卒業です。
0889デフォルトの名無しさん
2011/02/23(水) 18:27:14.75かってに、google に甘い期待をしているんだけど、
ttp://sourceforge.jp/magazine/11/02/22/104206
これとかを見ると、google 的には、
C++ は Web アプリみたいにして、
Android に持っていくつもりなのかな。
プログラマのヘマでセキュリティーホール作られるよりは、
制限あっても、sandbox 内で…って感じで。
Javaが選ばれた理由も、そんなんじゃなかったっけ?
0890デフォルトの名無しさん
2011/02/23(水) 22:03:58.8498なんかやめとけよ。
0891デフォルトの名無しさん
2011/02/23(水) 23:02:43.58ttp://image01.wiki.livedoor.jp/w/n/winostan/b273aa305e09d697.jpg
0893877
2011/02/24(木) 20:35:59.66会員になるとどうなるのでしょうか?
>>887
MFCはやはり対応していないのでしょうか?
一応VS2005はサポートプラットフォーム?に98があるのですが、
MFCはそれとは無関係ということですか?
0894デフォルトの名無しさん
2011/02/25(金) 01:15:28.400895デフォルトの名無しさん
2011/02/25(金) 10:24:32.23このためには参考書として何がおすすめでしょうか?
当方、CやVB.netを趣味でかじった程度の素人です。
VC++2008はダウンロードしたばかりで、何も知らない状態です。
0896デフォルトの名無しさん
2011/02/25(金) 10:35:03.850897デフォルトの名無しさん
2011/02/25(金) 11:57:59.690898デフォルトの名無しさん
2011/02/25(金) 12:27:49.820899デフォルトの名無しさん
2011/02/25(金) 12:50:53.66C#のほうが情報が多いですか?
0900デフォルトの名無しさん
2011/02/25(金) 12:52:52.22#include <BluetoothAPIs.h>をつかってMS スタックの操作プログラムを作りたいと思っているのですが
本当に入門のところしかわからず困ってます。
関数の前にこのような記載をするらしいのですがこれはなんなんでしょうか?構造体?
BLUETOOTH_FIND_RADIO_PARAMS m_bt_find_radio = {sizeof(BLUETOOTH_FIND_RADIO_PARAMS)};
BLUETOOTH_RADIO_INFO m_bt_info = {sizeof(BLUETOOTH_RADIO_INFO),0,};
その他WinSDK入れてBluetoothAPIs.hはインストールされていると思うのですが
関数を記載するとエラーになってしまいます。
何を調べればよいかもわからないので助言をいただけませんか
0901デフォルトの名無しさん
2011/02/25(金) 14:11:38.58初めてBluetoothAPIs.hなんてのを知りましたが
#include <Windows.h>
#include <BluetoothAPIs.h>
0902デフォルトの名無しさん
2011/02/27(日) 03:26:35.58別ディレクトリにあるが
同じファイル名(h&cpp)、同じクラス名、といったものは
C++で可能なのでしょうか?
名前空間で実現できるかと思っていたのですが
どうもリンカエラーが出てしまいます。
コインパイル後のobjファイルを見てみると
クラス名と同じ名のファイルが
一つだけしかできていないようなので
もしかしたら同じクラス名は宣言できない?と思い
質問させていただきました。
よろしくお願いします。
0903デフォルトの名無しさん
2011/02/27(日) 05:27:34.13中間ファイルの出力名が被らないようにすればいい
/Fo
0904デフォルトの名無しさん
2011/02/27(日) 08:58:18.77アホ
0905デフォルトの名無しさん
2011/02/27(日) 11:21:38.02俺には中間ファイルの出力名や出力先を
/Foで指定する事しか思い浮かばないので
変わりに教えてやってくれ
0906デフォルトの名無しさん
2011/02/27(日) 15:07:59.12試したことは、プリプロセッサの定義欄に DEBUG_%%USERNAME:.=%% を追加したことと、
追加のオプションに /D DEBUG_%%USERNAME:.=%% と追加をしたことです。
どちらも%が1つだとエラーになりました。
0907デフォルトの名無しさん
2011/02/27(日) 15:37:02.88追加のプリプロセッサに
DEBUG_$(USERNAME):.=
0908906
2011/02/27(日) 15:51:35.66試してみましたが、思ったような動作
( USERNAME=user.name の場合 DEBUG_username が定義 ) になりませんでした。
( プリプロセッサの定義欄に入力した際に全てのオプションを見ると、
/D "DEBUG_user.name:.=" というように解釈されているようです。 )
ユーザ名に '.' が含まれているため、
それを省くか '_' で置き換えるかをしなければいけないのですが、
( #ifdef DEBUG_user.name だとエラーがでるため)
それを実現する方法はありませんか?
0909デフォルトの名無しさん
2011/02/27(日) 16:07:04.46エスパーするな。
何がしたいのか分からんけど
追加のプリプロセッサに
DEBUG_$(USERNAME)
#ifdef DEBUG_user.name
//...
#endif
0910デフォルトの名無しさん
2011/02/27(日) 16:08:35.42:.=
ってのは君の希望に答えただけだからな。
0911906
2011/02/27(日) 16:26:00.14>>909
以下のようなコードをコンパイルしてもエラーが起こらないため、
思った通りに定義されていないようです。
#ifdef DEBUG_user.name
error // ここでエラーがでるはず
#endif
>>910
DEBUG_$(USERNAME):.= を設定したうえで
以下のようなコードをコンパイルしてもエラーが起こらないため、
思った通りに定義されていないようです。
お気を悪くさせてしまいましたら申し訳ありません。
#ifdef DEBUG_username
error // ここでエラーがでるはず
#endif
0912デフォルトの名無しさん
2011/02/27(日) 16:42:26.59> 909 名前:デフォルトの名無しさん[sage] 投稿日:2011/02/27(日) 16:07:04.46
> >>908
> エスパーするな。
> 何がしたいのか分からんけど
> 追加のプリプロセッサに
> DEBUG_$(USERNAME)
>
> #ifdef DEBUG_user.name
> //...
> #endif
0913906
2011/02/27(日) 16:51:34.13もしかして「追加のプリプロセッサ」という設定項目がどこかにあるということでしょうか?
今探してみたのですが、どこにあるかわかりませんでした。
0914デフォルトの名無しさん
2011/02/27(日) 16:55:28.750916デフォルトの名無しさん
2011/02/27(日) 22:28:41.810917デフォルトの名無しさん
2011/02/27(日) 23:15:26.93正規表現そのものについて、ではなくて、正規表現は既に
知っていてVC++2008 での正規表現の使い方を教えて
欲しい、ということでいいかな?
0918デフォルトの名無しさん
2011/02/27(日) 23:21:29.69はい。
0919デフォルトの名無しさん
2011/02/28(月) 00:05:11.23whileで常駐させて、ほしい情報を読み込んだら処理を行ってまた常駐する
っていうのを作りたいんですけど、途中でwhileを抜ける方法って何かありますか??
0920デフォルトの名無しさん
2011/02/28(月) 00:06:07.470921デフォルトの名無しさん
2011/02/28(月) 00:08:28.19ありがとうございます。できました!
cpp単位で出力名を変更しました。
重ねて質問になってしまってもうしわけないんですが
本やサイト見ていても「クラス名の重複は名前空間でおk」と書かれています。
しかし今回は前述のとおり中間ファイル名の重複で躓いてしまいました。
対応方法もあまりスマートには感じれません。
自分は何か名前空間そのものを誤解しているのでしょうか?
それとも「そういうもんだ」なんでしょうか?
よろしくお願いします。
0922デフォルトの名無しさん
2011/02/28(月) 10:08:07.73これって、MS社員のIME変換のミスで、「手動で編集されたリソース」のことですよね?
「リソース」を手書きする場所でよいのですよね?
0923デフォルトの名無しさん
2011/02/28(月) 11:21:13.73「クラス名、名前空間」の話と「分割コンパイルでの各ファイルの名前」ではレイヤが違う
前者は言語の文法の話
後者は開発環境がコンパイル結果を管理するやり方の話
違うものを同じ名前にするのはよくないと思うよ
>>922
その通り
ワロス
0924デフォルトの名無しさん
2011/02/28(月) 12:44:31.230925デフォルトの名無しさん
2011/02/28(月) 18:35:01.130926デフォルトの名無しさん
2011/02/28(月) 20:45:45.61.net でもいいなら、VC++2008のヘルプを
.NET Framework の正規表現
で検索。使用例もあるよ。
0927デフォルトの名無しさん
2011/03/01(火) 00:37:31.62MSのIMEは誤変換が多いなw
0928デフォルトの名無しさん
2011/03/01(火) 00:39:55.61別におかしくないな
0929デフォルトの名無しさん
2011/03/01(火) 01:48:57.44a=1\nb=2\nとlpStringに入れても
改行が抜けてa=1b=2と保存されてしまいます。
どうすればいいでしょうか。
0930デフォルトの名無しさん
2011/03/01(火) 01:55:18.970931デフォルトの名無しさん
2011/03/01(火) 02:15:49.30レスありがとうございます。
しかし、GetPrivateProfileIntで読み込みたいので
できれば保存する時改行を入れたいです。
何故改行が消えてしまうのか全然分かりません。
0932デフォルトの名無しさん
2011/03/01(火) 02:17:19.830933デフォルトの名無しさん
2011/03/01(火) 02:17:59.110934デフォルトの名無しさん
2011/03/01(火) 02:59:32.93"a=1\0b=2\0"
0935デフォルトの名無しさん
2011/03/01(火) 03:02:25.57ほんとだ知らなかった
0936デフォルトの名無しさん
2011/03/01(火) 11:04:16.85ありがとうございます。
出来ました。
0937デフォルトの名無しさん
2011/03/01(火) 20:27:32.05"Visual Studio 2008"
を使っての説明をなさっているのですが、"Visual Studio 2010"を使っても同じような操作でできるでしょうか
別に2008の方を使っても困ることがないのなら2008のほうを使ってやろうと思うのですが…
0938デフォルトの名無しさん
2011/03/01(火) 20:45:12.86共存できるんだから両方いれりゃいいよ
0939デフォルトの名無しさん
2011/03/01(火) 20:50:36.95そうですね
使う言語はどっちも一緒だからどっちをつかっても勉強できますしね
0940デフォルトの名無しさん
2011/03/02(水) 09:00:43.21ないでしょうか?もしあれば教えていただけないでしょうか。
0941デフォルトの名無しさん
2011/03/02(水) 09:04:27.900942デフォルトの名無しさん
2011/03/02(水) 12:25:30.35windowsによって○○.exeでブレークポイントが発生しました。
と出て落ちてしまうんですが、どうすればいいですか?
VC2008です。
0943デフォルトの名無しさん
2011/03/02(水) 12:58:52.86諦めろ。
http://support.microsoft.com/kb/130667/ja
0944デフォルトの名無しさん
2011/03/02(水) 18:06:12.20まったりBPセット出来るぐらい?
0945デフォルトの名無しさん
2011/03/02(水) 20:30:06.470946デフォルトの名無しさん
2011/03/04(金) 12:27:25.63ネイティブで斬新的なC++言語を刷新してくれないかな。
どうせなら、買収したノキアのQtを新C++開発環境にしてもいい。
0947デフォルトの名無しさん
2011/03/04(金) 20:49:57.87C++Builderが安くなったじゃん。
0948デフォルトの名無しさん
2011/03/04(金) 22:04:39.44自動翻訳ひどすぎワロタw
0949デフォルトの名無しさん
2011/03/04(金) 22:25:47.940950デフォルトの名無しさん
2011/03/05(土) 02:13:17.220951デフォルトの名無しさん
2011/03/05(土) 07:23:12.09おまけにアローの場合同時押しまで出てくるし
0952デフォルトの名無しさん
2011/03/05(土) 18:06:31.740953341
2011/03/06(日) 02:50:49.90DLLを作ってメインプログラムにlibファイルを追加したんだけど、
DLL内の関数を普通に呼び出してビルドすると以下の様なエラーになります。
どなたかわかる方いませんか?
test2.obj : error LNK2019: 未解決の外部シンボル "int __cdecl makehook(struct HWND__ *,int,unsigned int)" (?makehook@@YAHPAUHWND__@@HI@Z) が関数 "void __cdecl WM_Paint(void)" (?WM_Paint@@YAXXZ) で参照されました。
解決方法を教えてください。よろしくお願いします。
0954デフォルトの名無しさん
2011/03/06(日) 02:56:23.29__declspec( dllimport )
くっつけた?
GCCと違って何をエクスポートし、何をインポートするのか
一つ一つ指定する必要があるよ
0955341
2011/03/06(日) 12:00:16.43#else
#define DLL_EXPORT __declspec (dllexport)
#endif
と書いて関数の宣言時に先頭にDLL_EXPORTを付けることで解決できましたが、
プロジェクトによってはDLL_EXPORTなどと付けずに動作している物もありました、
これはどういった方法をとっているのでしょうか?
0956デフォルトの名無しさん
2011/03/06(日) 12:55:46.81.def ファイル作って、そこで export する関数を定義する場合、
dllexport は不要じゃなかったかな
0957341
2011/03/06(日) 15:55:41.40訂正
#ifdef __cplusplus
#define DLL_EXPORT extern "C" __declspec (dllexport)
#else
#define DLL_EXPORT __declspec (dllexport)
#endif
でした。defファイルの方調べてみます。
0958デフォルトの名無しさん
2011/03/07(月) 09:33:29.83Cから勉強してきたのでWinMainを使うってのが分かりやすいのですが
WinMainを使うというのは邪道なんでしょうか?MFCアプリってなに?
ウィザードを使うのがC++の常識なんでしょうか?わからんなぁ
0959デフォルトの名無しさん
2011/03/07(月) 09:36:03.40MFC は設計がダサイから嫌ってる人が多い
VC++ で別のフレームワーク使う人も多い
0960デフォルトの名無しさん
2011/03/07(月) 12:19:55.69thx
WinMain中心で学習していきます。
0961341
2011/03/07(月) 16:29:08.14{
PMSG pmsg;
HMODULE hModule;
pmsg = (PMSG)lParam;
if (hc >= 0){
if (hc == HC_ACTION)
{
hModule = GetModuleHandle("sampledll.dll");
if (LoadString((HANDLE)hModule,pmsg->message,szWinMsg,50))
{
if (pmsg->message == WM_NULL )
{
return CallNextHookEx(hhook, hc, wParam, lParam);
}
szWinMsg[sizeof(szWinMsg)+1] = 0;
wsprintf(szData,"%06X :%s :%04X : %04X\0",pmsg->hwnd,szWinMsg,pmsg->wParam,pmsg->lParam);
ghWndlist = FindWindow(NULL,"C MAGAZINE");
SendDlgItemMessage(ghWndlist,1070,LB_ADDSTRING,0,(LPARAM)(LPCTSTR)szData);
}
}
return CallNextHookEx(hhook, hc, wParam, lParam);
}
return CallNextHookEx(hhook, hc, wParam, lParam);
}
サンプルではこれで動作するのですが、
自作するとこれでLoadStringが動作せず0を返すのですが、
それとGetModuleHandleとは何をする関数でしょうか?
0962デフォルトの名無しさん
2011/03/07(月) 17:05:48.61そもそもsampledll.dllをリンクしてないかLoadlibraryしてないんだろう
0963341
2011/03/07(月) 17:10:43.71このサイトのソースを使いました。
sampledll.dllというファイルは存在しません。
どうして動作するのでしょうか?
0964デフォルトの名無しさん
2011/03/07(月) 17:35:13.75てかまともな本買えよ
いろいろと理解が足りてないぞ
0965341
2011/03/07(月) 17:49:48.160966デフォルトの名無しさん
2011/03/07(月) 18:17:08.02こっちで聞けばいいよ
0967デフォルトの名無しさん
2011/03/08(火) 03:23:12.90あるのですが、計算結果をファイルに書き込みたいのですが、char型の配列
に変換できずに困っています。I[i]=salt%256;salt=(salt>>8);とやっても
出来ませんでした。ZZ型をそのまま書きこむ方法があればいいのですが、
内部でどのような処理をしているのかが解りません。どなたか解る人が
いたら教えてください。よろしくお願いします。
0968デフォルトの名無しさん
2011/03/08(火) 03:29:14.990969デフォルトの名無しさん
2011/03/09(水) 22:07:57.06Joytokeyの様に1ボタンを押したらキボードのキーが押されるといった操作を実現する為には、
キボードの出力メッセージを出せばいいと思いSendMessageでWM_KEYDOWN、WM_KEYUPしてみたのですがうまく動きません、
どうしたらいいのでしょうか?
0970969
2011/03/10(木) 02:50:57.52使おうと思ったのですが、
LPINPUT bubu = {0};
と定義すると、
error C2065: 'LPINPUT' : 定義されていない識別子です。
といったエラーが出てしまいます。
#include <windows.h>
#include <winuser.h>
は書いてあります。
よろしくお願いします。
0971デフォルトの名無しさん
2011/03/10(木) 02:53:23.84MSDNぐらいみようぜ
0972デフォルトの名無しさん
2011/03/10(木) 02:55:43.56OSとVCのバージョンは?
0973デフォルトの名無しさん
2011/03/10(木) 02:59:35.200974969
2011/03/10(木) 03:20:32.360975969
2011/03/10(木) 03:22:18.65VC2003
ですよろしくお願いします。
0977デフォルトの名無しさん
2011/03/10(木) 03:29:48.420978デフォルトの名無しさん
2011/03/11(金) 14:29:50.93どのような方法がありますか?
CreateProcessとかsystemとかうまくいかなくて困っています。
0979デフォルトの名無しさん
2011/03/11(金) 14:34:50.61WScript.Quit(1)
とか
0980デフォルトの名無しさん
2011/03/11(金) 14:39:15.58ありがとうございます。
とれました
0981デフォルトの名無しさん
2011/03/11(金) 21:32:43.740982デフォルトの名無しさん
2011/03/12(土) 15:48:34.890983デフォルトの名無しさん
2011/03/13(日) 06:21:28.940984デフォルトの名無しさん
2011/03/13(日) 10:12:09.720985デフォルトの名無しさん
2011/03/13(日) 10:18:24.580986デフォルトの名無しさん
2011/03/13(日) 10:32:36.090987デフォルトの名無しさん
2011/03/13(日) 10:54:16.45たてろよ。うめ
0988デフォルトの名無しさん
2011/03/13(日) 11:14:31.93数週間前は開けました・・・
file_nameにはファイル名が入っています。
ifs.is_open()で0が返ります。
std::ifstream ifs;
string file_name;
ifs.open(file_name.c_str());
0989デフォルトの名無しさん
2011/03/13(日) 11:17:42.72★初心者にVisual C++を教えるスレ★ Part37
http://hibari.2ch.net/test/read.cgi/tech/1299982561/
0990デフォルトの名無しさん
2011/03/13(日) 18:55:10.920991デフォルトの名無しさん
2011/03/14(月) 04:14:43.530992デフォルトの名無しさん
2011/03/14(月) 07:11:46.210993デフォルトの名無しさん
2011/03/14(月) 07:14:08.570994デフォルトの名無しさん
2011/03/14(月) 10:21:46.180995デフォルトの名無しさん
2011/03/14(月) 17:40:05.83ム板は人の出入りが少ないから、案外と落ちなかったりする。
通常運行の場合は995、いや使い切ってからでも十分だよ。
あと自分で立てる気がないくせに人に立てさせようとする奴は嫌われるぞ。
0996デフォルトの名無しさん
2011/03/14(月) 18:22:01.910997デフォルトの名無しさん
2011/03/14(月) 18:22:29.010998デフォルトの名無しさん
2011/03/14(月) 18:22:35.300999デフォルトの名無しさん
2011/03/14(月) 18:22:42.541000デフォルトの名無しさん
2011/03/14(月) 18:22:52.3410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。