★初心者にVisual C++を教えるスレ★ Part35
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2009/10/27(火) 21:15:13お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
【過去スレ】
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デフォルトの名無しさん
2009/10/27(火) 21:18:120003デフォルトの名無しさん
2009/10/27(火) 21:26:29■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/
0004デフォルトの名無しさん
2009/10/27(火) 21:30:42MSDN ライブラリ
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
0005デフォルトの名無しさん
2009/10/27(火) 22:18:300006デフォルトの名無しさん
2009/10/27(火) 22:23:390007デフォルトの名無しさん
2009/10/28(水) 01:32:44一番下のビットを調べればいいような気がしますが、やり方がわかりません
00087
2009/10/28(水) 01:45:36int y = 1;
if((x & y) == 1){
こんな条件式でいいんでしょうか?
0009デフォルトの名無しさん
2009/10/28(水) 02:16:55if (x & 1) { ... }
だけでもいい
0010デフォルトの名無しさん
2009/10/28(水) 02:31:43BOOL IsKisuh( int nValue)
{
if ( nValue == 0) return FALSE;
return ( nValue % 2);
}
0011デフォルトの名無しさん
2009/10/28(水) 04:24:45関数名がキモイ
0012デフォルトの名無しさん
2009/10/28(水) 09:07:11なんで0を例外扱いしているの?
まさか、0を2で割ってはいけないなんて寝惚けたことは言わないよね?
0013デフォルトの名無しさん
2009/10/28(水) 09:10:260014デフォルトの名無しさん
2009/10/28(水) 10:01:440015デフォルトの名無しさん
2009/10/28(水) 13:13:330016デフォルトの名無しさん
2009/10/28(水) 15:06:30ボタンイベント【OnBnClickedButton1()】で、
AfxBeginThread( ThreadFunk1, NULL );
を実行したいです。
その下に、
UINT CStringTestDlg::ThreadFunc1(LPVOID dummy)
{
AfxMessageBox(_T("スレッドが呼ばれた"));
return( 0 );
}
また、TestDlg.hファイルに、
static UINT ThreadFunc1(LPVOID);
を追加しました。
C2065: 'ThreadFunk1' : 定義されていない識別子です。
C2653: 'CStringTestDlg' : 識別子がクラス名でも名前空間名でもありません。
ですが、上記のエラーが出てわかりません。
他のツールソースを見ながら少しずつ出来ることを増やしていこうと勉強中なのですが、
これは他のソースからAfxBeginThreadを勉強しようと思いそれを使用している部分をコピーしました。
エラーが出るので、クラスビューから追加しなければいけないのかとも思いましたが、
UNIT は選択できないため、もしクラスビューから追加するのであればその方法も教えて頂きたいです。
同じ方が見ているかわかりませんが、Part34 949 です。
宜しくお願いします。
0017デフォルトの名無しさん
2009/10/28(水) 15:17:48ThreadFunc1 を宣言してるのに、ThreadFunk1を使おうとしてるから。
k と c な。
おかしいと思ったら変数とかはコピペでもっていってみるといい。
001816
2009/10/28(水) 15:30:20ご指摘ありがとうございます。
盆ミスですみません。
error C2653: 'CStringTestDlg' : 識別子がクラス名でも名前空間名でもありません。
しかし上記にスペルミスはありませんでした。(「TestDlg」検索でたくさんひっかかるのを確認。)
0019デフォルトの名無しさん
2009/10/28(水) 15:43:00それはファイル名からの推測だが、
CTestDlgクラスを作ったのに雑誌通りCStringTestDlgのメンバとして書いてるんだろ。
CStringTestDlg → CTestDlgでどうよ
0020デフォルトの名無しさん
2009/10/28(水) 15:44:23002116
2009/10/28(水) 15:52:01ああああああああああああ。
ありがとうございます。
CStringなんとか と、先入観で勘違いをしていました・・・。
CTestDlgで通りました。
ありがとうございます。
0022デフォルトの名無しさん
2009/10/28(水) 15:57:18>C2065
>C2653
コンパイラ エラー のコードがちゃんと出ているんだから、
ヘルプ(MSDN)で調べるクセをつけといたほうがいいぞ。
考えられる原因も、ちゃんとそこに載っているから。
002316
2009/10/28(水) 16:06:19了解しました。
MSDNもよくみるようにします。
0024デフォルトの名無しさん
2009/10/28(水) 20:56:43プロジェクト : error PRJ0015 : NULL デバイスがシステム内にありません。ビルドを実行できません。
と出てビルド?できません
ググったらhttp://msdn.microsoft.com/ja-jp/library/c22s4fy4.aspxが出てきたんですが
リソースをあけても出てくるので
”NULL デバイスに対する適切な特権がないためにこのエラーが発生することもあります。”
ということなんでしょうか? これをどうすればいいのかわかりません。
0025デフォルトの名無しさん
2009/10/28(水) 21:02:370026デフォルトの名無しさん
2009/10/28(水) 21:34:460027デフォルトの名無しさん
2009/10/29(木) 15:57:03たとえば最初にint A[5]とか宣言した後に6番目の要素を追加するような感じで
メモリ領域を確保とかすれば可能なんでしょうか?
0028デフォルトの名無しさん
2009/10/29(木) 16:27:35いみふ。日本語でOK
0029デフォルトの名無しさん
2009/10/29(木) 16:29:430030デフォルトの名無しさん
2009/10/29(木) 17:15:400031デフォルトの名無しさん
2009/10/29(木) 17:17:21無くても書けるだけであったほうがわかりやすい時は使った方がいい。
0032デフォルトの名無しさん
2009/10/29(木) 17:52:440033デフォルトの名無しさん
2009/10/29(木) 21:46:14�@クラスAの関数内でループさせ、クラスCの関数に配列Bからひとつずつデータを渡して何度も呼び出す
�A配列Bを(グローバルに宣言して)クラスCの関数に受け渡して、クラスCの関数内でループさせる
どちらの方法を使うほうがよりスマートでしょうか?
詳しく書くと、クラスCは描画処理関連のクラスで、描画はクラスCでしか行えません
クラスAの関数で描画用の情報をまとめてローカルな配列Bに入れています
�Aの方が速度的に速そうな気がしますが、�@の方がグローバル宣言しなくていいのでプログラム的に簡単なようにも思います
描画処理自体の回数はどちらも変わらないので、�@の方が良いんでしょうか
003433
2009/10/29(木) 21:49:060035デフォルトの名無しさん
2009/10/29(木) 22:13:10教わった通りのことしかかけない自分で考えることのない人はそれでいいよ
0036デフォルトの名無しさん
2009/10/29(木) 23:23:360037デフォルトの名無しさん
2009/10/30(金) 02:14:08WindowsのGUI自体もほとんど反応しなくなってしまうのですが、どういった要因でフリーズしてしまうのでしょうか。
デスクトップのGUI全体が半死状態になって
Ctrl+Shift+Escでタスクマネージャを起動させてもまともにコントロールが表示されず、Visual C++のプロセスを殺すこともできなくて
PCの再起動かけないといけない状態です。
使用しているソフトはVC++2008EE SP1、XP Home Edition SP3で用いています。
0038デフォルトの名無しさん
2009/10/30(金) 09:58:14それだけの条件では何が起きているかまでは想像しようがありません。ステップオーバーしようとしている関数が悪さをしているのでは?
>>33
クラスAの関数から配列BをクラスCの関数に渡すことはできないの?
構造体の配列でも引き数で渡すことはできますよ。
尤も、配列ではなくvectorにしておけばサイズ情報を別パラメータにしなくていい分よりシンプルになりますが。
0039デフォルトの名無しさん
2009/10/30(金) 11:47:170040デフォルトの名無しさん
2009/10/30(金) 11:51:43>37? だとしたら、動作環境が劣悪なんじゃないの? 特にメモリ容量辺りを見直すべし。
0041デフォルトの名無しさん
2009/10/30(金) 11:56:20仮想メモリというか、ページファイルも含めれば十分にあると思います。
0042デフォルトの名無しさん
2009/10/30(金) 12:12:12OS入れなおしで直ったが・・・
0043デフォルトの名無しさん
2009/11/01(日) 22:10:51004443
2009/11/01(日) 22:23:50「プリコンパイル済みヘッダーがありません」というのが
#include "stdafx.h" を書いていっても消えません
004543
2009/11/01(日) 22:31:14VC++ 2008 Express Editionでした
0046デフォルトの名無しさん
2009/11/02(月) 08:59:08ただの Visual C++ ユーザー、Visual Studio ユーザー
って多いよね。
プログラマではなく、ただの統合環境(IDE)ユーザーでしかない人。
IDEをそれなりに使いこなして、アプリっぽいものを作れる人と、
IDEがあってもなくても、アプリをガツガツ組める人とは
雲泥の差がある。
0047デフォルトの名無しさん
2009/11/02(月) 09:55:35デバッガ使える環境なのに使わないとかありえんだろ。
検索と同じように、コツというものはあるけどな
0048デフォルトの名無しさん
2009/11/02(月) 11:20:14VCは初心者だけど他で経験あるやつ
万年初心者のやつ
初心者といってもいろいろだろ
0049デフォルトの名無しさん
2009/11/02(月) 11:22:18IDEの使い方は必要最小限しか知らない
0050デフォルトの名無しさん
2009/11/04(水) 13:00:07size = GetGlyphOutline(hdc, str[i], GGO_GRAY4_BITMAP, &gm, 0, NULL, &Mat );
こんな感じで使っているのですが、この関数の戻り値がループの初回は460で二回目は0xFFFFFFになります
それぞれの引数を初期化したり定数にしてみたりしましたが変わりません
この関数が0xFFFFFFを返すというのはどういう状況なんでしょうか
0051デフォルトの名無しさん
2009/11/04(水) 13:29:51MSDNによると、
--
戻り値
フラグ GGO_BITMAP、GGO_GRAY2_BITMAP、GGO_GRAY4_BITMAP、GGO_GRAY8_BITMAP または GGO_NATIVE が指定されていて関数が成功した場合、
0 を超える値が返ります。失敗した場合は、GDI_ERROR が返ります。これらのフラグのうちの 1 つが指定されていてバッファサイズまたはアドレスが 0 の場合、必要なバッファのサイズがバイト単位で返ります。
GGO_METRICS フラグが指定されていて関数が失敗した場合、GDI_ERROR が返ります。
--
ということだそうだ。
0052デフォルトの名無しさん
2009/11/04(水) 13:36:380053デフォルトの名無しさん
2009/11/04(水) 13:37:15どうも
#define GDI_ERROR (0xFFFFFFFFL)
ということなので、どうやらGDI_ERRORが返ってきてるようですね
引数変えたりしてもうちょっと試してみます
0054デフォルトの名無しさん
2009/11/04(水) 13:48:55エラーが返ってきてるのがわかったら次はGetLastErrorだろ
0055デフォルトの名無しさん
2009/11/04(水) 15:14:21ここがループ内で変わってるから、違う結果になってるだけだと思う
0056デフォルトの名無しさん
2009/11/04(水) 15:24:280057デフォルトの名無しさん
2009/11/06(金) 03:21:301>c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(32) : error C2059: 構文エラー : '文字列'
1>c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(32) : error C2143: 構文エラー : ';' が '{' の前にありません。
1>c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(32) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
#ifdef __cplusplus
extern "C" {
#endif
インクルードファイルの" extern "C"{ "という部分で何故か怒られます
何かインクルードファイルが足りてないとかでしょうか?
0058デフォルトの名無しさん
2009/11/06(金) 03:28:000059デフォルトの名無しさん
2009/11/06(金) 03:39:420060デフォルトの名無しさん
2009/11/06(金) 03:55:270061デフォルトの名無しさん
2009/11/07(土) 10:12:35プロジェクト共通の名前空間内でusing namespace std;
みたいな使い方してるんだけどStdAfxってこういう使い方でいいんでしょうか?
0062デフォルトの名無しさん
2009/11/07(土) 12:06:180063デフォルトの名無しさん
2009/11/07(土) 13:52:01FindFirstFile() API を呼んで、返ってきた WIN32_FIND_DATA の
nFileSizeHigh および nFileSizeLow メンバを調べる
0064デフォルトの名無しさん
2009/11/07(土) 14:49:11#include <boost/filesystem.hpp>
int main()
{
namespace fs = boost::filesystem;
fs::path p;
std::cin >> p;
if(fs::exists(p)){
if(fs::is_directory(p)){
std::cout << "Directory." << std::endl;
}else{
std::cout << "size: " << fs::file_size(p) << " bytes." << std::endl;
}
}else{
std::cout << "Not found." << std::endl;
}
}
0065デフォルトの名無しさん
2009/11/07(土) 17:46:57if と else の間の文にはより短いほうを記述しなさいって習わなかった?
0066デフォルトの名無しさん
2009/11/07(土) 18:01:28短い方とか聞いたことない。
006762
2009/11/07(土) 20:14:30ありがとうございます
その構造体、調べてみると上位32ビットと下位32ビットを記録するってあるんですが、
32ビット超えててもWIN32APIで扱えるんでしょうか?
006862
2009/11/07(土) 20:15:460069デフォルトの名無しさん
2009/11/07(土) 20:38:06当然32ビット超えなら余裕で大丈夫だろ
0070デフォルトの名無しさん
2009/11/07(土) 21:26:57DirectXも含めた形でコンパイルするにはどうすれば良いでしょうか?
0071デフォルトの名無しさん
2009/11/07(土) 23:32:24そこしか突っ込むところが見つけられなかったんですねw
0072デフォルトの名無しさん
2009/11/08(日) 09:55:40普通にやればいい、どこで困ってんの?
0073デフォルトの名無しさん
2009/11/09(月) 01:25:090074デフォルトの名無しさん
2009/11/09(月) 09:54:45これをスペースまで含んでも入力できるやつに差し替えればいいだけだろう。
0075デフォルトの名無しさん
2009/11/09(月) 10:05:310076デフォルトの名無しさん
2009/11/09(月) 10:13:280077デフォルトの名無しさん
2009/11/09(月) 18:19:31ってことは、ある関数内でchar * str = new char[10]とかで宣言したら、
returnする前にdeleteしないと、ポインタが失われて開放できなくなるんでしょうか?
0078デフォルトの名無しさん
2009/11/09(月) 18:45:430079デフォルトの名無しさん
2009/11/09(月) 19:16:280080デフォルトの名無しさん
2009/11/09(月) 22:32:59ダブルクォーテーションを含んだ文字列を扱うにはどうすればいいんでしょうか
現在は下のように一文字ずつシングルクォーテーションで代入しているんですが
char search[3];
search[0] = '"';
search[1] = ',';
search[2] = 0;
char * strtmp = strstr( str, search);
もっと簡単な方法はあるでしょうか?
それからもうひとつ別の質問ですが、文字列でswitchしたいのですが、switchは整数でしか使えないため、
現在else ifを何度も繰り返してやってる状態です
もっとすっきりした書き方はないでしょうか?
if(element == "TEST1"){ //elementはchar*型です
} else if(element == "TEST2"){
} else if(element == "TEST3"){
} else if...
こんな感じで何度も繰り返してます
0081デフォルトの名無しさん
2009/11/09(月) 22:51:58エスケープシーケンスを使う
"\","
>if(element == "TEST1"){ //elementはchar*型です
elementはCString型かstring型の間違いよな?
せいぜい条件をvectorに入れてfindするくらいか。
0082デフォルトの名無しさん
2009/11/09(月) 23:05:06どうも \を入れれば特殊文字も使えるんですね 勉強になりました
0083デフォルトの名無しさん
2009/11/10(火) 00:30:37>} else if(element == "TEST2"){
>} else if(element == "TEST3"){
この例のように比較すべき文字列の最後の文字だけが異なるのなら、方法はある。
switch()は確かに文字列は扱えない。が、文字なら扱えるのだから。
0084デフォルトの名無しさん
2009/11/10(火) 04:25:18WCHAR * FILENAME;
どこかで
FILENAME = new WCHAR[20];
FILENAME = L"xxx.jpg";
どこかで
delete [] FILENAME;
これでコンパイルして実行すると、deleteしようとしたときに
AssertionFailure:BLOCK_TYPE_IS_VALIDが出ます
何故かdeleteできないようなのですが、どうすればいいでしょうか?
008584
2009/11/10(火) 04:54:36WCHAR FILENAME[20];で宣言して、memcpyで代入したら特に問題なさそうだったのでそちらにします
0086デフォルトの名無しさん
2009/11/10(火) 05:02:420x0100 "XXXXXXXXXXXXXXXXXXXX"
0xf200 "xxx.jpg"
FILENAME = new WCHAR[20]; // FILENAME = 0x0100; FILENAME は確保したメモリアドレスを指す。
FILENAME = L"xxx.jpg"; // FILENAME = 0xf200; FILENAME はL"xxx.jpg"が置いてあるメモリアドレスを指す。
delete [] FILENAME; // 0x0100を解放しなければならないのに、0xf200のアドレスを解放しようとしたのでエラー
つまり、FILENAME = L"xxx.jpg"; がダメ。たとえば以下のようにする。
FILENAME = new WCHAR[20]; // FILENAME = 0x0100; FILENAMEは確保したメモリのアドレスを指す。
wcscpy(FILENAME, L"xxx.jpg"); // 0xf200のアドレスから、0x0100のアドレスに文字列をコピーしてくる。
delete [] FILENAME; // 0x0100に確保したメモリアドレスを解放する。
0087デフォルトの名無しさん
2009/11/10(火) 05:03:270088デフォルトの名無しさん
2009/11/10(火) 09:46:33ありがとうございました
続けて質問ですが、例えば
char str[6] = "123456";
という文字列から、int型の整数123456を導きたい場合はどうすれば良いのでしょうか
double k = 0;
for(i = 0; i < strlen(str); i++)
k += (char[i] - 48) * pow( 10 , strlen(str) - i - 1);
これで多分求められる気がしますが、関数として用意されてるかな?と
0089デフォルトの名無しさん
2009/11/10(火) 09:58:360090デフォルトの名無しさん
2009/11/10(火) 10:16:320091デフォルトの名無しさん
2009/11/10(火) 10:26:55数ヵ月後にもういちど書いてみて、全然違うコードになると思うから。
0092デフォルトの名無しさん
2009/11/10(火) 10:45:220093デフォルトの名無しさん
2009/11/10(火) 10:58:04"123456"という文字列を入れるのにstr[6]はサイズが足りないから、
atoiは動かない可能性がある。
0094デフォルトの名無しさん
2009/11/10(火) 11:02:35Javaとか普通にやってくれるぞ?
もう少し顧客満足度について考えるべき。
0095デフォルトの名無しさん
2009/11/10(火) 11:09:310096デフォルトの名無しさん
2009/11/10(火) 12:35:370097デフォルトの名無しさん
2009/11/10(火) 14:52:48サイズを指定しなければ気を利かしてくれる
0098デフォルトの名無しさん
2009/11/10(火) 15:02:110099デフォルトの名無しさん
2009/11/14(土) 12:56:03気を利かせるってのがそもそもおかしい。
それを認めると、書いた通りに動かない可能性が出て来てしまうではないか。
プログラムはあなたが思ったようには動かないが、あなたが書いたようには動く
0100デフォルトの名無しさん
2009/11/15(日) 02:25:29CreateEventで作ったイベントオブジェクトの状態を知るにはどうすればいいんでしょうか
マルチスレッドにしてWaitForSingleObject()とすればイベントが起きるごとに作業ができるようですが、
マルチスレッドではなく、フレームごとに状態をチェックするようなことはできないのでしょうか
0101デフォルトの名無しさん
2009/11/15(日) 10:07:270102デフォルトの名無しさん
2009/11/15(日) 14:58:41WaitForSingleObjectでいいじゃない。
シングルスレッドでだって使える。
0103デフォルトの名無しさん
2009/11/16(月) 01:59:25自分でマクロ定義した方が良いんでしょうか?
それともコンパイルしたら同じことになりますか?
0104デフォルトの名無しさん
2009/11/16(月) 02:14:380105デフォルトの名無しさん
2009/11/16(月) 04:11:16よく使われてるマクロだったのでどこかのヘッダに入ってるものだとばかり思ってました
0106デフォルトの名無しさん
2009/11/20(金) 00:02:280107デフォルトの名無しさん
2009/11/20(金) 20:50:14ゲーム作ってるとして
・キャラクターの派生(100とかありそう)
・アイテムの〜
・その他の特に関連のないこまごまとしたソース郡
・それらを纏めるMainプロジェクト
ぐらいでいいんだろうか
0108デフォルトの名無しさん
2009/11/20(金) 20:57:030109デフォルトの名無しさん
2009/11/20(金) 21:01:420110デフォルトの名無しさん
2009/11/21(土) 00:15:40以前は、ツール→オプションで開くダイアログボックスの、プロジェクトおよびソリューションというところにありました。
0111デフォルトの名無しさん
2009/11/21(土) 00:16:310112デフォルトの名無しさん
2009/11/21(土) 00:17:160113デフォルトの名無しさん
2009/11/21(土) 02:14:02Win32APIオンリー(SDK)の環境でやってます。
キーボードのEnterキーを押されたら○○する・・というようにしたいのですが
Enterキー以外のキー(1とか2とかSHIFTとか)は正常に取得できます。
Enterキーだけが取得できません。
unsigned char keys[256];
WM_KEYDOWN:
GetKeyboardState(keys)
if (keys[VK_RETURN]&0x80){
MessageBox(hWnd,"Enterが押された","",MB_OK);
}
if (keys[VK_SHIFT]&0x80){
MessageBox(hWnd,"SHIFTが押された","",MB_OK);
}
シフトを押すとメッセージが出ますが、エンターキーは(テンキーの物も)押しても
何も出ません。
あと、 WM_KEYDOWN: で
if(wParam==VK_RETURN)のようにしても、やっぱりエンターキーだけが取得できません。(他のキーは問題ない)
またウィンドウ上にフォーカスを持つような物も配置していません。
どうしてでしょうか?
0114デフォルトの名無しさん
2009/11/21(土) 10:35:550115デフォルトの名無しさん
2009/11/21(土) 10:48:50GetKeyState関数使ってもだめ?
http://msdn.microsoft.com/ja-jp/library/cc364676.aspx
0116デフォルトの名無しさん
2009/11/21(土) 12:09:160117113
2009/11/21(土) 16:05:45GetKeyStateでも、やっぱりエンターキーのみが取得できません。
一応2台PCがあって、
WinMe(デスクトップ)とWinXP(ノート)のどちらでも同じ症状です。
0118デフォルトの名無しさん
2009/11/21(土) 17:39:090119デフォルトの名無しさん
2009/11/21(土) 17:42:12サブディスプレイに任意の動画を流すということは
VC++でできるのでしょうか?
できないならなんの言語でできるのでしょうか?
0120デフォルトの名無しさん
2009/11/21(土) 18:36:300121デフォルトの名無しさん
2009/11/21(土) 18:41:170122119
2009/11/21(土) 19:24:440123デフォルトの名無しさん
2009/11/21(土) 22:30:05ウィンドウサイズを指定するにはどうすれば良いでしょうか?
0124デフォルトの名無しさん
2009/11/21(土) 22:39:43AdjustWindowRect
0125デフォルトの名無しさん
2009/11/22(日) 00:41:37有難う誤字増す
0126デフォルトの名無しさん
2009/11/22(日) 05:05:50そのファイルを先頭から数ビット読んで対応したものに変換、というのを
繰り返したいんですが。それと、2進数は16進数で処理して表さなければいけないのでしょうか?
0127デフォルトの名無しさん
2009/11/22(日) 05:40:33「2進数を16進数で処理する」という言い方では君が何を疑問に
思っているのか伝わらないよ。何か根本的なところを勘違いしている
気はするんだけど何を勘違いしているのか読み取れないよ。
ちなみにCやC++の整数型の内部表現は2進数しか無い。
ソースコードに整数型の定数値を書く際の表記法は
2進数、10進数、16進数の3通りが用意されているけどね。
でも3通りの表記法のどれを使ってもコンピュータに
とっては同じ意味になる。
たとえば次の3つの書き方は全く同じ意味になる。
1) int i = 10; // 10進数で表記した値(2進数の1010)を変数に代入
2) int i = 0x0a; // 16進数で表記した値(2進数の1010)を変数に代入
3) int i = 012; // 8進数で表記した値(2進数の1010)を変数に代入
この事を理解した上で、何を疑問に思っているのかもう1度投稿してみて。
0128デフォルトの名無しさん
2009/11/22(日) 05:43:12>ソースコードに整数型の定数値を書く際の表記法は
>2進数、10進数、16進数の3通りが用意されているけどね。
わろす
0129デフォルトの名無しさん
2009/11/22(日) 05:44:13誤:ソースコードに整数型の定数値を書く際の表記法は2進数、10進数、16進数の3通りが用意されているけどね。
正:ソースコードに整数型の定数値を書く際の表記法は8進数、10進数、16進数の3通りが用意されているけどね。
0130デフォルトの名無しさん
2009/11/22(日) 05:44:53ビット演算について知りたいなら「ビット演算 C++」でググるのが早い
それとも"01100010"という文字列が欲しいって意味?
0131デフォルトの名無しさん
2009/11/22(日) 06:31:55#include <stdlib.h>
#include <string.h>
void dmp(unsigned char *b, int len){
int i, j;
for(i = len; --i >= 0; )
for(j = 256; (j >>= 1) > 0; )
printf("%d", (b[i] & j) ? 1 : 0);
}
int main(int ac, char **av){
char buf[4096];
int i, f;
printf("input: (123, 0.5, 3.4e-6, etc...) > ");
fgets(buf, sizeof(buf), stdin);
printf(buf);
f = 0;
for(i = 0; i < strlen(buf); i++){
char c = buf[i];
if((c == '.') || (c == 'E') || (c == 'e')){ f = 1; break; }
}
if(f){
double d;
sscanf(buf, "%lf", &d);
printf("%.16f\n", d);
dmp((unsigned char *)&d, sizeof(d) / sizeof(char));
}else{
sscanf(buf, "%d", &i);
printf("%d\n", i);
dmp((unsigned char *)&i, sizeof(i) / sizeof(char));
}
return 0;
}
0132デフォルトの名無しさん
2009/11/22(日) 10:04:500133デフォルトの名無しさん
2009/11/22(日) 12:57:52エディットボックスを2個用意して、1/2縦と1/2横を切り替えたいのですが、どのようにすればいいでしょうか。
http://www1.axfc.net/uploader/Sc/so/57058
http://www1.axfc.net/uploader/Sc/so/57059
0134デフォルトの名無しさん
2009/11/22(日) 13:00:22SetWindowPos
0135デフォルトの名無しさん
2009/11/22(日) 21:13:040136デフォルトの名無しさん
2009/11/22(日) 21:59:07C++初心者スレとかの方があってると思う。
0137デフォルトの名無しさん
2009/11/22(日) 22:01:130138デフォルトの名無しさん
2009/11/23(月) 03:41:24レスありがとうございます。しようとしている事は画像の符号化です。
輝度値をハフマン符号で表現し、ファイルに格納したいのです。
現段階では出力ファイルはそのままでは見れなくて、復号化処理を行う
と見れる、という状態にしたいのです。
簡単に言うと、値3→(10) 値10→(1001) ・・・を順に (101001・・・)とファイルに出力
出来ないかと思った次第です。
使用しているC++入門の本には8進と16進の扱い方しか載ってなかったので、
>>130さんの方法で少し頑張りたいと思います。
0139デフォルトの名無しさん
2009/11/25(水) 15:32:25ダイアログアプリケーションでデストラクタの追加ってどうやればいいんですか?
仮想関数の追加やらみたけど、載ってないですし、自分でメンバ関数の追加でやっていいのかもわかりません。
ネットでいろいろ調べても追加の方法が書いてなく・・・
すみませんが、おしえてください m(_ _)m
0140デフォルトの名無しさん
2009/11/25(水) 15:37:08ウィンドウ表示って難しそうだけど…
普通のCとWindowsCの違いって、CUIかGUIの違いとそっくりそのままなんだよね。
>>135
C言語の文法の法則によれば、CUIのプログラムができるし
WindowsのCの法則にちゃんとしたがって組めば、GUIの画面ができるし。
昔の真っ黒な画面に入力していったアプリが、GUIになってExcelに変わったとかいう話だけで
初心者が思うほど、GUIプログラミングも難しくないんだよね。Excelに変わったのと同じくらいというだけ。
0141デフォルトの名無しさん
2009/11/25(水) 15:41:41floatよりdoubleのほうが早いって本当にゃん?
0142デフォルトの名無しさん
2009/11/25(水) 16:53:16メンバ関数の追加でやってもいいし、手動でやってもいい。
所詮はC++、IDEの機能を使わなきゃできない、なんて類のものではない。
0143デフォルトの名無しさん
2009/11/25(水) 17:46:13たぶんいいたいのは、結局内部ではshort int はintに、floatはdoubleに変換するから
変換の手間だけ遅くなるって意味だと思うよ。まあ状況によってはそういうところもある
0144デフォルトの名無しさん
2009/11/25(水) 18:09:30なんでExcel?w
0145デフォルトの名無しさん
2009/11/25(水) 20:26:48ウォッチウィンドウが、昼間に使っていたときは表示されていたのですが、
夜になって表示されなくなりました。(Express , Professional 両方とも)
ヘルプメニューには
> [デバッグ] メニューの [ウィンドウ]、[ウォッチ] を順にポイントし、
と書いてありますが、[デバッグ] メニューの [ウィンドウ]に[ウォッチ]が見当たりません。
( [ブレークポイント]、[出力]、[イミディエイト]の3つのみ )
ウォッチウィンドウを表示させる方法をご存知の方、教えてください。
0146デフォルトの名無しさん
2009/11/25(水) 20:34:030147デフォルトの名無しさん
2009/11/25(水) 20:47:08ありがとうございます。パソコン再起動して、デバッグにしたら表示されました。
パソコン再起動中に、いつもは開かないVisual Studioのダイアログボックスが開いて、
デバッガが(応答なし)と出ました。
私がうっかりしていただけかも知れません。
自分のウォッチウィンドウへの依存度の高さに気付かされました。
0148デフォルトの名無しさん
2009/11/25(水) 23:01:502次元配列の関数へのアドレス渡しで困っています。
GCC ユーザーなもので、いまいちVisual系が解かりませんのでご教授願います。
以下は、行列 Matrix[50][10] をつくり、各要素に1を代入するソースなはずです。
/****************************************************/
#include <stdio.h>
void ALL_ONE(int *Px, int NofRow,int NofCol){
int i;
for (i = 0 ; i < NofRow*NofCol ; i++){
*(Px+i) = 1;
}
}
void main(void){
int Matrix[50][10];
ALL_ONE(&Matrix,50,10);
/*以下に対して各処理を続行*/
}
/****************************************************/
GCCでは incompatible pointer type の warning は出るものの、
コンパイルでき、結果が表示されます。
マイクロソフト、Visual C++ 2008 Expres Edition では、
コンパイルエラー
error C2664: 'ALL_ONE' : 1 番目の引数を 'int [50][10]' から 'int *' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。
変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。となってしまいます。どなたかたすけてください、お願いします。
0149デフォルトの名無しさん
2009/11/25(水) 23:10:58この時点でダメじゃないか。^^
いまいちVisual系が解かってないんじゃなくて、
C言語の基礎がわかってない。
&Matrix は int[50][10] 型へのポインタを返すので、
void ALL_ONE(int (*Px)[50][10], int NofRow,int NofCol){
と書く必要がある。
0150デフォルトの名無しさん
2009/11/25(水) 23:24:48>ALL_ONE(&Matrix,50,10);
配列名は、配列先頭要素へのポインタだから、
「&」は、いらないんじゃないですか。
ALL_ONE(Matrix,50,10);
0151デフォルトの名無しさん
2009/11/26(木) 00:10:25ALL_ONE(&Matrix[0][0], 50, 10);としておけ、VC++でもコンパイル通るしGCCでも警告が出なくなる。
これがエラーになるか警告しかでないかの差異はC++かCかの違い。
VC++でもCとしてコンパイルすれば警告になるし、GCCでもg++ならエラーになる。
0152デフォルトの名無しさん
2009/11/26(木) 00:19:371〜9の数字を並べて表示させようと思っていて、
int C[9]={1,2,3,4,5,6,7,8,9};
を最初に作ってます。
そして一度でも使った数字には0を当てはめます。
k=0;
do{
printf("数を選んで下さい\n");
while(k<9){
if(C[k]!=0){
printf("%d\n",C[k]);
k++;
}
最初に1〜9を表示させるにはどうすればよいですか?
0153デフォルトの名無しさん
2009/11/26(木) 00:20:520154デフォルトの名無しさん
2009/11/26(木) 00:25:260155デフォルトの名無しさん
2009/11/26(木) 06:21:44VC6のとき、さっぱり意味がわからずに挫折した者なんですが
今のVCならいけるでしょうか?
0156デフォルトの名無しさん
2009/11/26(木) 11:23:56C#にしとけ
0157デフォルトの名無しさん
2009/11/26(木) 15:14:07CStringに入っている文字列を
UTF-8形式のテキストファイルに書き出したいのですが、
よく分かりません。
CStringWに変換して
wfopen_s
で書き出せばいいかと思うのですが、書き出すサイズが
GetLength()で取得すると、文字数しかわからず、実際のサイズが分かりません。
やってること自体見当違いでしょうか・・・。
ご教授いただけますと幸いです。
0158デフォルトの名無しさん
2009/11/26(木) 15:55:33まずはUTF-8とUTF-16とUnicodeの違いを調べたほうがいい。
MultiByteToWideCharとWideCharToMultiByteを使って以下のように変換をする。
char(sjis?) -> wchar_t(utf-16) -> char(utf-8)
wfopen_sとfopen_sの違いはファイル名をUnicodeで指定するかどうかだけ。書き込みには関係ない。
書き込むサイズはWideCharToMultiByteの戻り値を見れば分かる。
0159デフォルトの名無しさん
2009/11/26(木) 20:29:10>>156も言っているが、ファイルを開くのにはwfopen_sでもfopen_sでも同じ。
ファイル名もCStringで与えるなら、_tfopen_sがおすすめ。
ただし、2番目の引数を"w,ccs=UTF-8"と指定すること。UTF-8への変換はCRTがやってくれる。
これだけで、あとはいつもどおり、fprintf_s/fwprintf_s/_ftprintf_sやfputs/fputws/_fputts、
putchar/putwchar/_puttcharなどFILE*に書き込む関数が使える。
0160デフォルトの名無しさん
2009/11/26(木) 22:12:06皆様ありがとうございました。
>>151さま
ALL_ONE(&Matrix[0][0], 50, 10);
でいけました!!!
ありがとうございます。
今後は、「配列の位置」をまじめに記述するよう心がけます。
考えてみれば、当然のことですね。。
&Matrix[0][0]でなくても&Matrix[5][0]でも良い訳ですからね。
>>149さま
ありがとうございます。
「まじめに動けばいい!」と思ってwarning は全て無視してました。
精進いたします。ちなみに
void ALL_ONE(int (*Px)[50][10], int NofRow,int NofCol){
はアウトでした。
>>150さま
gcc は ALL_ONE(Matrix,50,10); でいけまました。
visual C++ .net の教科書は & をつけろとありました。
ちなみに、visual C++で、配列が1次元のときは & なしで大丈夫でした。
私の想像ですが、ALL_ONE(Matrix,50,10);の記述は、コンパイル時、内部マクロで、ALL_ONE(&Matrix[0],50,10);に書き換えられてコンパイルされるのかと。。。ふと思いました。
おかげで、助かりました。再度、皆様方に厚く御礼申し上げます。
0161デフォルトの名無しさん
2009/11/26(木) 23:25:08死ね
0162デフォルトの名無しさん
2009/11/27(金) 00:06:080163デフォルトの名無しさん
2009/11/27(金) 23:08:47自慢じゃないけどね。
0164139
2009/11/28(土) 14:23:20どうもありがとうございます。遅れてしまい、すみません。。
質問したこと忘れてました。。
メンバ関数の追加でやればいいんですね。自分は以前Java業でして、倉庫の奥の
VC6.0を引っ張り出して、遊んでいます。いまいちIDEの機能がつかめなく
どうすればいいかわかりませんでした。
助かりました。これから、やってみます。ありがとうございました。
ググッても必要な情報がでてこなかったので・・・
0165デフォルトの名無しさん
2009/11/30(月) 02:58:06{ 1.0, 0.0, 0.0. 0.0 },
{ 0.0, 1.0, 0.0, 0.0 },
{ 0.0, 0.0, 1.0, 0.0 },
{ 0.0, 0.0, 0.0, 1.0 },
};
とあるソースに書いており、それは動いたのですが、他のプロジェクトのソースにこのまま写すと
error C2143: 構文エラー : ';' が '}' の前にありません。
error C2059: 構文エラー : '}'
error C2143: 構文エラー : ';' が '{' の前にありません。
error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
error C2059: 構文エラー : ','
とエラーがでて動きません。
なぜでしょうか
0166デフォルトの名無しさん
2009/11/30(月) 10:35:14コンマがピリオドになっている。
0167デフォルトの名無しさん
2009/11/30(月) 20:12:03ソース内でpragmaなどを使って指定する方法はありますか?
0168デフォルトの名無しさん
2009/12/01(火) 10:26:01でできないかな?
0169デフォルトの名無しさん
2009/12/01(火) 10:27:280170デフォルトの名無しさん
2009/12/01(火) 17:40:110171デフォルトの名無しさん
2009/12/01(火) 18:20:35stdafx.hあたりに、>>168のようなライブラリフォルダと同じような書き方で
インクルードフォルダを指定できたらと思っているのですが、
やっぱり無いんでしょうかね。
0172デフォルトの名無しさん
2009/12/01(火) 18:29:16これと>>170組み合わせたら?
0173デフォルトの名無しさん
2009/12/01(火) 18:29:560174デフォルトの名無しさん
2009/12/01(火) 18:36:34正確な情報が必要ならサポートに相談すべき
0175デフォルトの名無しさん
2009/12/03(木) 13:53:27VC++標準のコンパイルエラーなどの出力と同じように、ダブルクリックとかF8キーでジャンプできるようになりますが
決まった形式とかあるんでしょうか。今はVC++の出力を真似て書いてます。
0176デフォルトの名無しさん
2009/12/03(木) 14:35:230177デフォルトの名無しさん
2009/12/03(木) 14:37:54VisualC++ 2008 Express Editionを使用しているのですが、
グローバルな文字列の配列を宣言するには、どのようにすれば良いのでしょうか?
private: System::String^ PrivateString[1000];
これではエラーになってしまうので、何か良い方法がありましたらご教授よろしくお願いします。
0178デフォルトの名無しさん
2009/12/03(木) 15:14:38もしそうなら↓で聞いた方がいいかも。
C++/CLI part3
http://pc12.2ch.net/test/read.cgi/tech/1206447234/
0179デフォルトの名無しさん
2009/12/03(木) 16:29:01エラーはこれです。
1>d:\cpp\Form1.h(986) : error C2728: 'System::String ^' : ネイティブ配列はこのマネージ型を含むことはできません
1> 'array<System::String ^>' を意図しましたか?
arrayを使えば良いのかな?でも
private: array<System::String ^> PrivateString = gcnew array<System::String ^>(1024);
ではダメでした
1>d:\cpp\Form1.h(987) : error C3149: 'cli::array<Type>' : トップレベルの '^' なしに、この型をここに使用することはできません
1> with
1> [
1> Type=System::String ^
1> ]
1>d:\cpp\Form1.h(987) : error C3845: 'HC3::Form1::PrivateString': ref クラス または値型の内部で、スタティック データ メンバのみ初期化することができます
0180デフォルトの名無しさん
2009/12/03(木) 16:36:39じゃないのか
0181デフォルトの名無しさん
2009/12/03(木) 16:54:03ありがとうございます。
加えてstaticにすることで、動作しました。
private: static array<System::String ^>^ PrivateString = gcnew array<System::String ^>(1024);
0182デフォルトの名無しさん
2009/12/04(金) 04:37:58VisualC++ 2008 Express Editionで、iniファイルの操作を行おうと思っているのですが、カレントディレクトリの取得から躓いてしまいました。
http://msdn.microsoft.com/ja-jp/library/system.io.directory.getcurrentdirectory.aspx
を、参考に記述してみたのですが、最初の
String^ path = Directory::GetCurrentDirectory();
の、ところでエラーが発生してしまいました。
1>d:\cpp\Form1.h(1049) : error C2039: 'GetCurrentDirectoryW' : 'System::IO::Directory' のメンバではありません。
1> c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : 'System::IO::Directory' の宣言を確認してください。
1>d:\cpp\Form1.h(1049) : error C2660: 'GetCurrentDirectoryW' : 関数に 0 個の引数を指定できません。
namespaceは宣言していますし、GetCurrent〜は::の後の予測変換で表示されているのを選んでいるので、メンバになっていると思うのですが・・・。
すいませんが、よろしくお願いします。
0183デフォルトの名無しさん
2009/12/04(金) 05:11:21たぶんこれ。
http://social.msdn.microsoft.com/forums/ja-JP/vcgeneralja/thread/a2c9c7cc-1441-4ce3-bfdf-bdfaa0810d37/
ていうか GetCurrentDirectoryW でぐぐったら最初にでてきたぞ。
0184デフォルトの名無しさん
2009/12/05(土) 01:38:33ありがとうございます。
'GetCurrentDirectoryのところで'GetCurrentDirectoryW'の説明があったから、そっちは検索してませんでした。
CLIもいろいろとめんどくさいのですね。
0185デフォルトの名無しさん
2009/12/05(土) 11:21:14可変長の符号をファイルに出力したいのですが
どのようなプログラムにすればいいでしょうか?
例.値(10進)「3 3 6 3 6 2」
3・・・00
6・・・01
2・・・100
出力後のファイル(2進)「0000010001100」
最低1バイト単位でファイルに出力したいのですが。
0186デフォルトの名無しさん
2009/12/05(土) 11:45:250187デフォルトの名無しさん
2009/12/05(土) 13:52:440188デフォルトの名無しさん
2009/12/05(土) 19:27:45調べているとVC++2005では出来ないそうですが、VC++2008は出来ますか?
エディションはExpressです。
0189デフォルトの名無しさん
2009/12/05(土) 19:46:59最近のWindows SDKだとその問題への対処がなされていて、>>182のように書いてもエラーが出なくなっている。
いつからだかは分からないけど、すくなくとも最新のWindows SDK 7.0はそうなっている。
0190デフォルトの名無しさん
2009/12/06(日) 10:44:56これじゃないの?
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/535myprojecttemplate/myprojecttemplate.html
2005EEはもう消してしまったけど、VS2005ProとVC#2008EEにはテンプレートのエクスポートの項目あるけどなあ
0191デフォルトの名無しさん
2009/12/06(日) 13:18:43ありがとうございます。
それがVisual C++ にはエクスポートの項目が見つからないのです。
0192デフォルトの名無しさん
2009/12/08(火) 12:02:08テキストエディタのことで質問させて下さい。
カーソルのある行をコピー、カーソルのある行を選択、
もしくはカーソルのある行を削除というショートカットコマンドはあるんでしょうか?
MSDNで探して見たのですが、見当たりません。
もし、そのようなショートカットを使いたい場合はどうしたらいいのでしょうか?
0193デフォルトの名無しさん
2009/12/08(火) 12:49:20あとは Ctrl+X, とか Delete すりゃいいんだが。
0194デフォルトの名無しさん
2009/12/08(火) 14:32:20RGB(r*x,g*x,b*x)みたいな事をしたいんですが
これだと3色の値を覚えないといけないので
作られた後の色に対して倍率を掛けたいのです
0195デフォルトの名無しさん
2009/12/08(火) 15:27:060196デフォルトの名無しさん
2009/12/08(火) 17:22:22これで何が不満だというのだ。
0197デフォルトの名無しさん
2009/12/08(火) 17:24:050198デフォルトの名無しさん
2009/12/08(火) 17:29:07GetRValue GetGValue GetBValueでRGB値から各値は取れますよ。
0199デフォルトの名無しさん
2009/12/08(火) 19:09:231文字も選択していない状態でCtrl+Cすると、カーソルのある行をコピーすることになる。
Ctrl+Xで切り取りも同様。
0201デフォルトの名無しさん
2009/12/09(水) 00:38:44回答ありがとうございます。
以前はそれで済ませてましたが、キーボードから手を離してマウス操作だと、
めんどくさく感じていたので・・・。
>>199
回答ありがとうございます。
やりたかった動作です。
本当に助かりました。
0202デフォルトの名無しさん
2009/12/09(水) 10:15:240203デフォルトの名無しさん
2009/12/09(水) 11:34:04といったところで1つ質問良いでしょうか
作成手段:「空のプロジェクト」から窓作成
目的:リソースビューで追加したウィンドウのハンドルを取得したい
コード抜粋
/**********winmain.cpp***********/
HINSTANCE hInst; //instance
HWND hEdit; //edit control
wndProc(HWND hWnd,UINT uiMsg,WPARAM wParam,LPARAM lParam)
{
HWND hDlog;//ダイアログのハンドル
switch(uiMsg){
case WM_CREATE://ウィンドウ作成時
hDlog = CreateDialog(hInst, MAKEINTRESOURCE(IDD_PROPPAGE_MEDIUM),
hWnd, DialogProc);//エディットボックスを持ったダイアログを作成
hEdit = /*??? エディットボックスのハンドルを取得 ???*/
/*** なんじゃもんじゃ ***/
}
/*** なんじゃもんじゃ ***/
}
/**********resource.h***********/
#define IDC_EDIT1 1020
#define IDD_PROPPAGE_MEDIUM 106
グローバル変数hEditにエディットボックスのハンドルを取り付けたいのですが
findwindowとかでは出来ないっぽいので、どーしたらよいものかと・・・
IDD_PROPPAGE_MEDIUMの中身はただのエディットボックスを持ったダイアログということでお願いします
0204デフォルトの名無しさん
2009/12/09(水) 11:41:330205デフォルトの名無しさん
2009/12/09(水) 14:26:03hEdit=GetDlgItem(hDlog, IDC_EDIT1);
でnullっぽい(unused)でした。
なんぞやり方間違ってるのか。ハテ
0206デフォルトの名無しさん
2009/12/09(水) 14:43:22ほんとに0x00000000だったのか?
unusedは気にしないでいいぞ
0207デフォルトの名無しさん
2009/12/09(水) 15:04:46文でnullリファレンス例外が飛んでるっぽいのでnullだと考えてたのですが
じゃあどこか別のところを見ているのか・・・
0208デフォルトの名無しさん
2009/12/09(水) 15:09:56>SetWindowText(hEdit,MAKEINTRESOURCE(int value));
そりゃないだろ、MAKEINTRESOURCEは数値を文字列に変換するわけじゃないぞ。
とりあえず、SetWindowText(hEdit, _T("Hello")); で試すとどうなる?
0209デフォルトの名無しさん
2009/12/09(水) 15:20:35value(int)を文字列の頭に入れておく・・・という感じでしょうか
数値文字列変換苦手だー
0210デフォルトの名無しさん
2009/12/09(水) 15:26:310211デフォルトの名無しさん
2009/12/09(水) 17:18:58ありがとうございます。山越えたみたいです・・・
0212デフォルトの名無しさん
2009/12/09(水) 17:39:00この先どのように勉強を進めて良いのか分かりません
皆さんはどのようにマスターされたのでしょうか?
やさしいC++ 第3版の内容は一通り終わっています
0213デフォルトの名無しさん
2009/12/09(水) 17:39:410214デフォルトの名無しさん
2009/12/09(水) 17:42:510215デフォルトの名無しさん
2009/12/09(水) 19:08:12struct struct{
int i;
}
main(){
for(0から10回){
func1();
}
}
func(){
static struct a ={0};
a.i++;
}
もうここまで書いたなら試せって話だが。これってa.i=10でいいよね
0216デフォルトの名無しさん
2009/12/09(水) 19:14:250217デフォルトの名無しさん
2009/12/09(水) 20:27:06自分が作りたいものによって学ぶべきものが変わってくるという事ですね
色々調べてみます
ありがとうございます
0218デフォルトの名無しさん
2009/12/09(水) 21:40:010219デフォルトの名無しさん
2009/12/09(水) 21:59:46話せるようになるには数作るしかない
0220デフォルトの名無しさん
2009/12/09(水) 23:16:33error LNK2001: 外部シンボル ""public: virtual void __thiscallCDialog::OnInitDialog(void)" (?OnInitDialog@CDialog@@UAEXXZ)" は未解決です。
error LNK2001: 外部シンボル ""public: virtual void __thiscallCDialog::OnInitDialog(void)" (?OnInitDialog@CDialog@@UAEXXZ)" は未解決です
error LNK2001: 外部シンボル ""public: virtual void __thiscallCDialog::OnInitDialog(void)" (?OnInitDialog@CDialog@@UAEXXZ)" は未解決です。
error LNK2019: 未解決の外部シンボル "public: virtual void __thiscallCDialog::OnInitDialog(void)" (?OnInitDialog@CDialog@@UAEXXZ) が
関数"public: virtual int __thiscall CprototypeApp::InitInstance(void)"(?InitInstance@CprototypeApp@@UAEHXZ) で参照されました
とエラーが出ていますが、原因がわからず困っています。
同じソースを別の人の環境で実行すると何もエラーも出ずにコンパイル・リンカーが通ります。
私も昨日までは通っていましたが、コーディングを設定ファイル?とかがおかしくなってしまったのか、
昨日のデータを使ってもリンカーエラーが出て困っています。
環境として、
自分 VisualStadio 2008 VC++(MFC)
別の人 VisualStadio 2008 VC++(MFC)
本当に困っています。何か知っている方がいらっしゃったら力を貸してください。
0221デフォルトの名無しさん
2009/12/10(木) 00:17:320222デフォルトの名無しさん
2009/12/10(木) 12:42:23ソリューション丸コピーでビルドが通らないの?ならVisual Studioをインストールしなおすのがいいだろう。
プロジェクトファイル(.vcproj)やソリューションファイル(.sln)もソースファイルだよ。
プログラマが操作した設定が書かれている。
0223デフォルトの名無しさん
2009/12/10(木) 13:02:260224デフォルトの名無しさん
2009/12/10(木) 17:40:48BYTE配列で持ってるBMPファイルのデータを
(CFileでWriteするとbmpファイルになるデータです)
JPEGに保存する方法はどういうのがあるでしょうか。
無駄なディスクI/Oは避けたいので
一度保存して、それをCImageで開くと言うのは最終手段と思っているのですが。
0225デフォルトの名無しさん
2009/12/10(木) 17:47:420226デフォルトの名無しさん
2009/12/10(木) 18:16:510227デフォルトの名無しさん
2009/12/10(木) 18:37:01�Aバッチファイル実行
�Bcl sample.cppと打つ
この手順で勉強しているのですが、毎回毎回これをやるのがつらいので、
sample.cppをドラッグアンドドロップすると上記手順を実行してくれるようなソフトや方法はありませんか?
0228デフォルトの名無しさん
2009/12/10(木) 18:56:07あと、コマンドラインでやりたいなら、VCじゃなくて他のコンパイラの情報を参考にした方がいいし、
コンパイラもそっち使った方がいいかもしれない。
0229デフォルトの名無しさん
2009/12/10(木) 19:18:44Linuxでg++でプログラミングしたことはあるのですが、WindowsでやるならVisual C++をやりたいなぁと思っておりまして。
申し訳ありませんが、
Windowsのバッチを書いて下さりませんか?
m(_ _)m
0230デフォルトの名無しさん
2009/12/10(木) 19:42:48@echo off
call vcvars32.bat
cd /d %~dp1
cl "%~nx1"
pause
0231デフォルトの名無しさん
2009/12/10(木) 20:01:39これ、ちょっと応用すればいろいろ使えそうですね。
0233デフォルトの名無しさん
2009/12/11(金) 15:03:58別に良いよね(ry
0234デフォルトの名無しさん
2009/12/11(金) 15:22:020235デフォルトの名無しさん
2009/12/11(金) 17:56:53.dsp とターゲット("〜〜 release" とか)を指定してビルドできる。
0236229
2009/12/12(土) 00:15:300237デフォルトの名無しさん
2009/12/12(土) 16:40:09標準状態で、画面のDPI設定を通常サイズ(96DPI)と125%(120DPI)にした場合で実行時のフォント及びフォームサイズが変わってしまいのす。
変わらないようにする方法は無いのでしょうか?
画面のDPI設定を無視して常に同じ大きさのフォームを表示がしたいです。
CLRを使うことがそもそもの間違いならそう指摘してください。
0238デフォルトの名無しさん
2009/12/12(土) 16:43:13考え方が間違っている。
96DPIと120DPIの双方に対応できるようにするのが正解。
0239デフォルトの名無しさん
2009/12/12(土) 17:09:48気に入らないなら自分で調整するか、最初から自分で出す。
0240デフォルトの名無しさん
2009/12/12(土) 19:29:32変えてるんだから変わるのは当たり前だろ?
0241デフォルトの名無しさん
2009/12/13(日) 10:27:02不特定環境での実行を想定するなら、サイズが違うことを前提で画面サイズ固定のプログラムを作るのは当たり前ですよね。
0242デフォルトの名無しさん
2009/12/13(日) 13:49:57環境としては.NETを用いて、CLR-Windowsフォームアプリケーションの
プロジェクトにしています。
double 型の配列データをdataGridViewに表示させようとしています。
例えば、test[0]〜test[10]にdouble型の数値データが入っていると
します。
フォームにdataGridViewを配置します。名前はデフォルトのまま
dataGridView1とします。自動的に出てくるメニューで列の追加を選び、
ヘッダーテキストをtestにして追加を押します。そして閉じます。
次に、Form1.Load()で
dataGridView1.Rows.Add(test);
と書くと、ここで
error C2228: '.Rows' の左側はクラス、構造体、共用体でなければな
りません
とエラーが出てしまいます。どのようにすればよろしいのでしょうか。
記してあること以外は、全てデフォルト設定になっています。
0243デフォルトの名無しさん
2009/12/13(日) 14:41:40dataGridView1->Rows->Add(test);
0244デフォルトの名無しさん
2009/12/14(月) 13:31:30LinuxでC言語であるプログラムを作り、その途中に「scanf("%d",&a);」
というのをいれて、プログラムをそこで一度ストップさせ、
なにか入力があったときに開始する といったようなものを作りました。(説明下手ですみません)
VCではコマンドラインがありませんが、同じようにできますか??
0245デフォルトの名無しさん
2009/12/14(月) 13:36:33Win32コンソールアプリケーションで作ればいい
0246デフォルトの名無しさん
2009/12/14(月) 13:59:53板違いかもしれませんが、VCで作ったプログラムを
matlabでmexして動かそうと思っているのですが、コンソールアプリケーションをmexしたらできますか?
0247デフォルトの名無しさん
2009/12/14(月) 14:09:14日本語が意味不明な気がしたため、追記させていただきます。
244で書いたようなことをmatlabでmexして動かしたいと思っています。
それは可能ですか?
0248デフォルトの名無しさん
2009/12/14(月) 14:23:570249デフォルトの名無しさん
2009/12/14(月) 17:46:35vc++2008eeを使ってるんですがどこを探しても見つからないもんで・・・
0250デフォルトの名無しさん
2009/12/14(月) 17:47:52ただし、リソースコンパイラ等は付属しているので、テキストでrcファイルを書くか、
外部のリソースエディタを使って組み込むことは可能。
0251デフォルトの名無しさん
2009/12/14(月) 17:49:52外部ツール導入してみます
0252デフォルトの名無しさん
2009/12/15(火) 07:19:290253デフォルトの名無しさん
2009/12/15(火) 23:25:00変更点とか多いですか?
友達がVC6.0で作ってくれたサンプルコードをくれたので、VC2008でやってみたいんですが。
もちろんMFCです。ちなみにVC2008は、StandardEditionをかおうかどうか迷っています。
容易にできるなら、買いたいと思っています。
0254デフォルトの名無しさん
2009/12/16(水) 00:26:33今買わないとPro買うしかなくなるお
0255デフォルトの名無しさん
2009/12/16(水) 01:35:10createprocessで起動したアプリのウィンドウサイズを取得取得したくて調べていたら
EnumWindowsでプロセスIDの一致でウィンドウハンドルを取得するのが一般的みたいなので
ttp://akky.cjb.net/mfc/appclose.html
ここのサンプルを試していたのですが、うまく動いてくれません。
プロセスID一致のifの中にブレークポイントを置くと止まるので、一致までは行ってるみたいなんですがメモ帳が終了しません。
どこがおかしいのでしょうか。
0256デフォルトの名無しさん
2009/12/16(水) 10:07:57WM_CLOSEがたしかに投げられてるか調べてみては。
0257デフォルトの名無しさん
2009/12/16(水) 10:19:15きちんとデバッグしたかったら自分で作ったプログラム使えばいい。
0258デフォルトの名無しさん
2009/12/16(水) 15:27:16そこ、MFC使ってるじゃん。
あなたは、MFCのついてないExpressEditionだから、そのサンプルのままじゃ動かないでしょう。
0259デフォルトの名無しさん
2009/12/16(水) 15:33:48CreateProcessの第2引数はリテラルじゃダメで変数にしたけどな。
ちゃんとメモ帳起動して終了した。
0260デフォルトの名無しさん
2009/12/16(水) 15:58:46これを追加 #include <windows.h> の下の行に追加
↓
#include <tchar.h>
以下の箇所を書き換え
AfxMessageBox(_T("メモ帳を終了させます。"));
↓
MessageBox(NULL, _T("メモ帳を終了させます。"), "メッセージボックス", MB_OK);
if(AfxMessageBox(_T("強制終了させますか?"), MB_YESNO) == IDYES)
↓
if(MessageBox( NULL, _T("強制終了させますか?"), "メッセージボックス", MB_YESNO ) == IDYES)
0261デフォルトの名無しさん
2009/12/16(水) 16:24:33実行とメモ帳起動まではうまくいってるとわかるだろう
0262デフォルトの名無しさん
2009/12/16(水) 18:28:450263デフォルトの名無しさん
2009/12/16(水) 18:53:29コンバータ用のSDK)を勉強しているのですが、SDK内の
ヘッダのクラスの定義部分でエラーが出てしまいます。
===================================================
#include "SIBCNode.h"
#include "SIBCString.h"
//エラーの出る部分
class XSIEXPORT CdotXSIParam : public CSIBCNode
{
public:
CdotXSIParam(); // Default constructor.
//-- 以下メンバ関数が続く ---------------
};
//--- Global Functions ----------------------
XSIEXPORT CdotXSIParam* CreatedotXSIParam();
XSIEXPORT void AllocateLocalXSIArray(SI_TinyVariant*, SI_Long);
<エラーの内容>
error C2470: 'CdotXSIParam' : 関数定義のようですが
パラメータリストがありません。外見上の本体をスキップします。
===================================================
CdotXSIParamがクラス名である事は分かるのですが、
エラーの元になっているクラス名の前やグローバル関数の
戻り値の前にある「XSIEXPORT」の部分の意味が分かりません。
こういう書き方は自分の持っているC++の本(独習C++)では
載っていないので推測なのですが、VisualC++で設定される機能
なのでしょうか? よろしくお願いいたします。
0264デフォルトの名無しさん
2009/12/16(水) 19:06:28たぶん#defineで関数規約か__declspec(・・・)とか書いてあるんだと思うよ
XSIの文字で固有のものだってわかるだろう
0265デフォルトの名無しさん
2009/12/16(水) 19:35:31定義XSIEXPORTの中身がわからんとなんともいえんが 他のファイルの後にincludeしなきゃならんとかか
0266263
2009/12/16(水) 19:51:57仰るとおりファイル内を検索してみると
#ifndef XSIEXPORT
# define XSIEXPORT __declspec(dllexport)
#endif
という記述が見つかり、VC++でプリプロセッサや
追加の依存ファイル等をいろいろ設定していたら無事に
コンパイルできるようになりました。
declspec等の呼び出し規約キーワードというものがあるのも
知りませんでした…orz
0267デフォルトの名無しさん
2009/12/16(水) 23:17:01レスありがとうございました。
今までWM_CREATE内にサンプルをコピペして実行していたのですが
ボタンを作って実行したら正常に動きました。
ttp://www.dotup.org/uploda/www.dotup.org464900.cpp
0268デフォルトの名無しさん
2009/12/16(水) 23:20:300269デフォルトの名無しさん
2009/12/17(木) 01:27:01寄付してくれたら、ひまだからご希望のソフトをつくってあげるお。
0270デフォルトの名無しさん
2009/12/17(木) 01:29:06MFCがいるから、StandardEdition以上だお( ^ω^)
0271デフォルトの名無しさん
2009/12/17(木) 09:53:04ネットで知ったのですが、評価版の有効期限を延ばす方法が存在します。実際にやってみたのですが、うまくいきました。
あまりおおっぴらにできることではないので内緒です。でもちょっと調べれば判るとおもいます。
どうしても判らない人は、Express Editionで我慢しましょう。
0272デフォルトの名無しさん
2009/12/17(木) 15:39:140273デフォルトの名無しさん
2009/12/17(木) 17:03:280274デフォルトの名無しさん
2009/12/17(木) 17:17:160275デフォルトの名無しさん
2009/12/17(木) 22:31:200276デフォルトの名無しさん
2009/12/18(金) 07:58:440277デフォルトの名無しさん
2009/12/19(土) 16:44:000278デフォルトの名無しさん
2009/12/19(土) 17:45:13なかなか人柱になってくれる人がいないわけね。
0279デフォルトの名無しさん
2009/12/21(月) 06:02:43新規作成からプロジェクトを選んでCLR→空のCLRプロジェクト
プロジェクト名を入力し、ソリューションのディレクトリ作成にチェックを入れてOKを押すと
画面左側にソースファイルやヘッダーファイルなどのソリューションのディレクトリが表示されるはずなんですが
何をしてもディレクトリが表示されません、そのおかげでソースファイルを右クリック→追加新しい項目からcppファイルを追加したいのにそれができません…
何か解決方法はありませんでしょうか?
visual c++ 2008 express editionを使用していて、過去に同じことをやったらソースファイルが出ていたはずなんですが今は出てこないんです…
0280デフォルトの名無しさん
2009/12/21(月) 06:12:44すみません、自己解決できました
バーのプロジェクト→新しい項目の追加からcppファイルを追加し動作させることができました
スレ汚し申し訳ありませんでした
0281デフォルトの名無しさん
2009/12/21(月) 07:46:210282デフォルトの名無しさん
2009/12/23(水) 23:00:51AfxBeginThread()を用いてスレッドにウィンドウハンドルとデータを与え、
計算を行った後メッセージを贈ってスレッドの作成元に計算結果を送信するようにしているのですが、
実行すると2〜3回に1回の頻度で
「一般エラー:ウィンドウハンドルが無効です」
とエラーメッセージが表示されます。
実行するたびに出るわけではないので、どこでエラーが出ているのかが良く分からないのですが、
問題としてはどういったことが考えられるのでしょうか。
0283デフォルトの名無しさん
2009/12/23(水) 23:08:020284デフォルトの名無しさん
2009/12/24(木) 19:28:39メインスレッドのほうが見に行かないと
0285282
2009/12/24(木) 21:39:05>>283
調べてみましたが、どうも問題は変数部分ではなくて
計算を行うスレッド内で動かしていたプログレスバーの部分だったようでした。
最初の書き込みで一切触れていない部分ですみません。
>>284
メインのほうが見に行くということは、計算のスレッド部分の関数を呼び出すなりして
値を取り出すということでしょうか
まだ上手く動作できるようになっていませんので、まだ何か思いつく所があったらお願いします。
0286デフォルトの名無しさん
2009/12/30(水) 00:37:500287デフォルトの名無しさん
2009/12/31(木) 23:07:51「ソリューションの中のプロジェクトにソースファイル(cppファイル)を追加して、コード
(例えばHalloWorldの練習)を書く。
書けたらデバッグなしで開始→上手くいったらHalloWorldの練習コードを全部消して次のコード
(例えばscanfの練習)を書く→上手くいったらscanfの練習コードを全部消して次のコード……(以下繰り返し)」
のような手順で勉強していました。
でも最近になって1つのソリューションの中に複数のプロジェクトを作れるのを知って、試しに
ソリューション
L__プロジェクト1
L__HalloWorldの練習.cpp
L__プロジェクト2
L__scanfの練習.cpp
のような構成にしてみました。
それでこれを「デバッグなしで開始」してみると、いつもHalloWorldしか実行されません。
scanfの練習.cppを真ん中のエディタ画面に出していても、HalloWorldが実行されます。
ソリューションの中の一番上のプロジェクト以外を実行したい場合はどうすればよいのでしょうか?
自分で色々試してる最中に、メニューに「プロジェクトのビルド順序」というのを見つけたので
「プロジェクトの依存関係」というところをいじって「ビルドの順序」タブで
scanfの練習.cppが一番上に来るようにしてみたのですが、上手くいきませんでした。
見当違いな質問をしていたらすみません……。
0288デフォルトの名無しさん
2009/12/31(木) 23:14:31ソリューションエクスプローラーで、プロジェクトを右クリックして
「スタートアッププロジェクトに設定」を選ぶ。
0289287
2009/12/31(木) 23:22:38できました! ありがとうございます!!
「スタートアッププロジェクトに設定」って、てっきり「VC++を起動した時に、勝手に
そのプロジェクトを開いてくれる」(ブラウザのスタートページに指定みたいな)機能」だと
思い込んでました。
これで前の練習用のコードを見返すのも楽になりそうです、ありがとうございました!!
0290デフォルトの名無しさん
2009/12/31(木) 23:52:430291デフォルトの名無しさん
2010/01/03(日) 23:39:44コンパイルは通るのに、肝心の中身はキャプチャされていなくて真っ黒になってしまうのですが、
どうしてでしょうか?
いろいろ試したのですが、どうしても解決できないので、解決策を教えて下さい。よろしくお願いします。
Graphics^ g1 = this->CreateGraphics();
Bitmap^ img = gcnew Bitmap(this->Width, this->Height, g1);
Graphics^ g2 = Graphics::FromImage(img);
IntPtr dc1 = g1->GetHdc();
IntPtr dc2 = g2->GetHdc();
HDC hDC1 = static_cast<HDC>(dc1.ToPointer());
HDC hDC2 = static_cast<HDC>(dc2.ToPointer());
BitBlt(hDC2, 0, 0, img->Width, img->Height, hDC1, 0, 0, SRCCOPY);
0292デフォルトの名無しさん
2010/01/04(月) 21:18:20実用的な解像度を教えていただけると助かります。
0293デフォルトの名無しさん
2010/01/04(月) 21:54:50XGAあれば何とか使えるが、高ければ高いほど能率上がる。
0294デフォルトの名無しさん
2010/01/05(火) 17:20:47下記のようなソースで構造体にCStringを使っているのですが
そこに値をセットしようとするとメモリアクセス違反に
なってしまいます。どうにも問題ないように見えるのですが
何か間違いがあるのでしょうか?
typedef struct _st {
CString cstr;
} ST;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
void *hoge = malloc(sizeof(ST));
ST *st;
st = (ST *)hoge;
st->cstr = "";
}
0295294
2010/01/05(火) 17:28:180296デフォルトの名無しさん
2010/01/05(火) 22:40:200297デフォルトの名無しさん
2010/01/06(水) 03:56:35DrawToBitmapはだめ?
0298デフォルトの名無しさん
2010/01/06(水) 07:29:32Cstring buff = "hogehoge";
buff = buff.Left(4);
とするとbuffを4文字で切れますが、これだと無駄にメモリを
使ってしまうと思います。
char *buff[10];
strcpy(buff, "hogehoge");
buff[4] = '\0';
みたいにぶつ切りできないでしょうか?
0299デフォルトの名無しさん
2010/01/06(水) 08:02:28Truncateメンバ関数
0300デフォルトの名無しさん
2010/01/06(水) 08:11:53ひゃっほー
ありがとう!
0301デフォルトの名無しさん
2010/01/06(水) 10:28:02このようにメモリをコピーする方法しかないでしょうか?
CString str = "test";
char *p = new char[str.GetLength()+1];
strcpy( p, str );
delete [] p;
char *p;
p = str.char_pointer();
みたいにできればありがたいのですが。
0302デフォルトの名無しさん
2010/01/06(水) 10:35:140303デフォルトの名無しさん
2010/01/06(水) 10:59:07英語のリファレンスただ置くだけで回答だと思うなよ。てかCStringの日本語ドキュメントなかったっけ?
俺自身CStringあんまり使わないから仕様は詳しく知らないんだが、メンバ関数にoperator const char*()が存在してるなら
p = (char*)(const char*)str;
でいいんじゃないかと思った。
ただまぁせっかくCStringクラスを使っているんだから生のポインタなんて使わない処理にした方がいい気がするんだが。
0304デフォルトの名無しさん
2010/01/06(水) 11:05:00うひょー
天才すぎる
0305デフォルトの名無しさん
2010/01/06(水) 11:15:02いや、こいつ調べなさすぎだろ、と思って皮肉でURLだけおいたんだが。
0307デフォルトの名無しさん
2010/01/06(水) 11:20:11いえ。とんでもない。助かりました。
VB厨なので調べるのも難しくorz
0308303
2010/01/06(水) 11:30:00>>305
そういうことかスマソ
>>307
ただの被害妄想だったか
参考までに今調べたら「CString ポインタ 変換」でまんまの解決策があったとだけ言っておこう
0309デフォルトの名無しさん
2010/01/06(水) 12:27:50これならコピーした方がいいだろ。
内部へのポインタをconstはずして
使うとか、トラブルのもと。
0310デフォルトの名無しさん
2010/01/06(水) 12:28:54const char* ではなく char* に変換するのが「書き換えたいから」という目的なら、
p = (char*)(const char*)str;
は危険。
書き換えないのなら
char* p ではなく const char* p にすればよいだけ。
0311デフォルトの名無しさん
2010/01/06(水) 17:51:37助かりました。大変ありがとうございました。
0312デフォルトの名無しさん
2010/01/06(水) 18:22:14buff = buff.Left(4);
これってまずくないの?
(298はTruncateを使うようにしたみたいなんで分岐した話として)
0313デフォルトの名無しさん
2010/01/06(水) 22:15:04>これってまずくないの?
なぜまずいと思ったのか言ってごらん。
0314デフォルトの名無しさん
2010/01/06(水) 22:19:01それは別に問題ないんじゃないの?
Truncateって知らんからMSDN見てみたけど、載ってない。
なんでだ。
http://msdn.microsoft.com/ja-jp/library/abzc9989(VS.80).aspx
0315デフォルトの名無しさん
2010/01/06(水) 23:03:24VC2003 でアンマネージなプロジェクトに一部マネージを混ぜて使ってます。
(ファイルごとのプロパティで /clr をつけてます)
ここで、アンマネージの関数(クラスの静的メソッド)の引数にマネージオブジェクト
(System::Cllectios::ArrayListなど)をつけて普通に呼び出す分には問題なく実行できます。
が、この関数を関数ポインタ経由で呼ぼうとすると例外が発生して不正終了します。
以下のようなコトをしたいのです。
アンマネージの関数ポインタ?がマネージオブジェクトの引数に対応してないのでしょうか。
void func( System::Collections::ArrayList* list )
{}
void hoge()
{
System::Collections::ArrayList* list = __gc new System::Collections::ArrayList();
void(*test)( System::Collections::ArrayList* ) = func;
func( list ); // ok
(*test)( list ); // ng
}
0316デフォルトの名無しさん
2010/01/07(木) 01:27:25CStringTの基底クラス、CSimpleStringのメンバ。
http://msdn.microsoft.com/ja-jp/library/8fx6d2h7.aspx
>>315
<gcroot.h>をインクルードして、funcとtestの型をgcroot<Systaem::Collections::ArrayList*>にしたらきちんと動いているようだった。
ちなみに、VC++ 2008では元のコードのままで動いた。おそらく2005でもそうだと思う。
> アンマネージの関数ポインタ?がマネージオブジェクトの引数に対応してないのでしょうか。
これが原因だと思う。gcroot<>自体はアンマネージ型で、
アンマネージクラスにマネージクラスオブジェクトを置きたいなどというときに使える。
0317デフォルトの名無しさん
2010/01/07(木) 09:27:14ブロック単位でメモリ管理してるから
ちまちまバイト単位でメモリ節約しても何の意味もなかったと思う。
0318デフォルトの名無しさん
2010/01/07(木) 11:42:49他のdllをリソースとして、自分が今作成しているdllに組み込むことは可能でしょうか?
具体的には、SQLiteのdll、sqlite3.dllを自分が作成しているdllにリソースとして組み込みたいと思っています。
0319デフォルトの名無しさん
2010/01/07(木) 12:09:510320318
2010/01/07(木) 12:38:38返信ありがとうございます。簡単にいうとそうです。
sqlite3.dllを使用していることをバレるのが困るというより、
sqlite3.dllを使用しているので SQLite形式のファイルをどこかで使かわれていることが、簡単にばれるのが少し困るので
この方法を考えています。バイナリで見られたらすぐにわかりますが(笑
リソースとしてdllを読み込む方法を知らなかったので質問しました。 可能ということでよろしいでしょうか?
0321デフォルトの名無しさん
2010/01/07(木) 12:40:410322319
2010/01/07(木) 15:28:18・・・オープンソースがあることを知りませんでした・・・
ありがとうございます。 それを使ってみますm(_ _)m
0323312
2010/01/07(木) 16:13:18i=i++; と似た匂いを感じてしまったんだが、考え直してみたら i=i+1; と同じか。
Left()はconstだからいいんだな。
0325デフォルトの名無しさん
2010/01/08(金) 22:14:12渡されるところで隣に座ってた人に横からお稲荷さん取られた
それは私のお稲荷さんだ!って言ったら反対側に座ってた人がイクラを噴出した
私も一瞬後で気づいて、たぶん顔真っ赤になってたろうけど全部食べた
0326デフォルトの名無しさん
2010/01/09(土) 20:11:17何を使っているのでしょうか?
0327デフォルトの名無しさん
2010/01/09(土) 20:34:35いや、ふつーに使ってるよ。
使わないって半可通だろ?
0328デフォルトの名無しさん
2010/01/09(土) 22:06:280329デフォルトの名無しさん
2010/01/09(土) 22:20:250330デフォルトの名無しさん
2010/01/10(日) 06:55:30Windowsプログラマはそうだろうけど。
・・・ま、ここはVCのスレだし、いいのか・
0331デフォルトの名無しさん
2010/01/10(日) 18:15:33MS VisualC++2008でcvBlobを使おうとしたのですが、エラーがでてビルドが完了しません。(下記にエラーメッセージ)
OpenCV1.0は既にインストールしてあり、PC上での動作は確認してあります。
OSはWindows XP SP3です。
足りない情報がありましたら教えてください。
よろしくお願いします。
////////エラーメッセージ//////////
\cvblob.cpp(27) : fatal error C1083: include ファイルを開けません。'opencv/cv.h': No such file or directory
opencv\cv\include\cvcompat.h(784) : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
test.cpp(3) : fatal error C1083: include ファイルを開けません。'cvblob.h': No such file or directory
cvlabel.cpp(27) : fatal error C1083: include ファイルを開けません。'opencv/cv.h': No such file or directory
0332デフォルトの名無しさん
2010/01/10(日) 18:40:11インクルードパスの設定の仕方をだな
0333デフォルトの名無しさん
2010/01/11(月) 03:13:23cvBlobは使いたいプロジェクトのディレクトリに入れるだけでOK…
という話を見たのですが、インクルードパスの設定が必要になるんですね。
もう少し格闘してきます。
アドバイスありがとうございました!
0334デフォルトの名無しさん
2010/01/11(月) 04:52:44まず適当に設置したボタンをクリックするとエディットボックス1(m_edit1)に表示されている文字列のうち、マウスでドラッグして選択した部分のみを別のエディットボックス2(m_edit2)に表示させたいです。
次にm_edit2に表示された文字列を取得してgoogle検索やWikipedia検索をさせるボタンを配置したいです。
わからないことは以下の二つ
1.選択文字列を取得して、新たに定義したCStringにコピーする方法
2.任意の文字をgoogle、wikipedia検索させる方法
2に関してはVC++じゃないような気もするのですが、教えてください…
0335334
2010/01/11(月) 07:35:080336デフォルトの名無しさん
2010/01/11(月) 13:25:04http://7ujm.net/C++/GINADLL.html
上記にあるサンプルをビルドしてXP pro sp3に入れてみましたが
「MSGINA.DLLを読み込めませんでした」と出てログオンできません。
初心者でソース自体に不備があるのか、ビルドの仕方が悪いのか判断できない状況です。
アドバイスお願いします
0337デフォルトの名無しさん
2010/01/11(月) 13:42:32ビルドした時とインストールしたものは同じ環境?
まずは普通にDLL作って普通に動作させるとこからやってみては
0338デフォルトの名無しさん
2010/01/11(月) 13:43:260339336
2010/01/11(月) 14:38:41アドバイスありがとうございます。
インストールしたものは別環境です。
たしかに仮に動かせたとしても今の私では危険ですね。
VB厨なので敷居は高く感じますが、ものぐさせずに一からやってみます。
0340デフォルトの名無しさん
2010/01/11(月) 14:58:11とりあえずデフォルトが/MDなのでredist入れるか/MTにするかかな。
0342デフォルトの名無しさん
2010/01/12(火) 08:21:46・exe実行時の引数に何も指定しなかった場合はFormを表示してwindowsアプリとして振舞う
・exe実行時の引数に特定のコマンドが指定されていた場合はFormを表示せず
動作を実行したのち終了
開発環境はvc++ 2008 Express Edition SP1です
0343デフォルトの名無しさん
2010/01/12(火) 08:40:11lpCmdLineに文字列があるかどうかで分岐させればいいんじゃないの?
0344デフォルトの名無しさん
2010/01/12(火) 09:37:25ありがとうございます。
できました
もしかして・・・vc++ 2008 Express Edition SP1の場合CLRを使わないと
Formなどを使うことはできませんか?
0345デフォルトの名無しさん
2010/01/12(火) 09:42:59Express Editionにはリソースエディタついてないからな
0346デフォルトの名無しさん
2010/01/12(火) 10:12:250347デフォルトの名無しさん
2010/01/12(火) 15:04:44窓アプリ作れるかって事ならできるよ
やりかたは↓でわかるよ
http://www.kumei.ne.jp/c_lang/index_sdk.html
0348デフォルトの名無しさん
2010/01/12(火) 20:05:27おすすめのコンパイラってあります?
0349デフォルトの名無しさん
2010/01/12(火) 20:13:00Visual C++ 2008 Express Edition
0350デフォルトの名無しさん
2010/01/12(火) 20:42:11GNU C++コンパイラ (G++)
0351デフォルトの名無しさん
2010/01/12(火) 21:25:37string s;
s = "aho"+a+"sakata";
↑はエラー出るけど、こんな感じの書き方はできませんか?
+= や copy使うとパッと見すごく分かりづらいです。
char aをstring型で複製するのも嫌です。
0352デフォルトの名無しさん
2010/01/12(火) 21:34:21この時点でなぁ
0353デフォルトの名無しさん
2010/01/12(火) 21:43:01std::string s;
s = std::string("aho")+a+"sakata";
こんなんで?
0354デフォルトの名無しさん
2010/01/12(火) 21:51:29ありがとうございます
まさにこんなのです
0355デフォルトの名無しさん
2010/01/14(木) 20:46:30とやったら、b + c != 0の場合にif文の中に入るんでしょうか?
0356デフォルトの名無しさん
2010/01/14(木) 21:49:010357デフォルトの名無しさん
2010/01/14(木) 22:41:59まあa, b, cは組み込み型だよね?
そうじゃないとしたら+や=のオーバーロード次第でなんとでもなる。
0358デフォルトの名無しさん
2010/01/18(月) 11:07:28VisualC++6.0で他人が作ったものを修正することになりました。
現在はVisualC++2005しかないため、6.0のdspファイルを開き2005用に変換しました。
プロジェクト→プロパティ→MFCの使用で、
「スタティックライブラリで使用」を選択し、ビルドしたところ、
下記のようなエラーが出てしまいます。
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) は既に LIBCMTD.lib(dbgdel.obj) で定義されています。
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) は既に LIBCMTD.lib(delete2.obj) で定義されています。
1>.\Debug/lc8_kensa.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
「共有DLLで使用する」を選択すれば、ビルドできます。
(もちろん警告は山のようにでますが・・・)
原因と解決方法を教えて頂けますか?
また、取り急ぎ、「共有DLLを使用する」でビルドしたアプリケーションを配布し、
実行したところ、「例外 不明なソフトウェア例外(0xc0000409)がアプリケーションの0x00411741で発生しました」
と表示され、エラーとなってしまいます。
この原因は「スタックライブラリで使用」にしてないので、起こったと思っているのですが、
違いますか?
よろしくお願い致します。
0359デフォルトの名無しさん
2010/01/18(月) 12:50:00エラーも警告も無視せずに対処しよう
0360デフォルトの名無しさん
2010/01/18(月) 13:33:08対処したいのですが、原因がわからず、対処方法がわかりません。
教えて頂けないでしょうか?
警告に関しては原因がわかっておりますので、対処したいと思います。
0361デフォルトの名無しさん
2010/01/18(月) 13:52:06プロジェクトのプロパティのコード生成のランタイムライブラリのあたり弄ってごらん
0362デフォルトの名無しさん
2010/01/18(月) 14:47:340363デフォルトの名無しさん
2010/01/18(月) 17:25:33ランタイムライブラリを適当にいじってみましたが、残念ながらうまくいきませんでした。
>>362
すいません。仕事じゃないです。
私事です。すいません。。。
0364デフォルトの名無しさん
2010/01/18(月) 17:34:39正直ソフト板あたりでやってほしいと思う、
0365デフォルトの名無しさん
2010/01/18(月) 17:41:42とりあえず、何をどうしたか全部書け。
まずはビルドするとき、クリーン→リビルドでやれ
0366デフォルトの名無しさん
2010/01/18(月) 18:03:25すいません。ソフト板っていうのがあるんですか!?
初心者でよく知らず、申し訳ありません。
>>365
まず、6.0で作成されたプロジェクトをフォルダごと、自分のプロジェクトフォルダに移しました。
\\My Documents\Visual Studio 2005\Projects\***
という具合です。
そこで、dspファイルを開くと、
プロジェクト '***.dsp' は現在の Visual C++ プロジェクト形式に変換されなければなりません。変換した後、このプロジェクトを旧バージョンの Visual Studio で編集することはできません。
変換してこのプロジェクトを開きますか?
と出てくるので、「はい」を選択して開きました。
これの「MFCの使用」を「スタティックライブラリ」に選択すると、
>>358のようなエラーが出てしまいます。。。
クリーン→リビルドでやるので正しいやり方なんですね!
これまではビルドしかしてませんでした。。。
勉強になります。
ありがとうございます!
0367デフォルトの名無しさん
2010/01/18(月) 18:09:290368デフォルトの名無しさん
2010/01/18(月) 18:29:14これではまるやつも多いので・・・
0369デフォルトの名無しさん
2010/01/18(月) 19:08:27WCFやEntityFramework4を使ったプロジェクトで作成しても、開発環境内でしか動作しない。
IISでホストできない構成ファイルとかアセンブリ参照とか、、、もう鬱になる。
0370デフォルトの名無しさん
2010/01/19(火) 05:16:27助言よろしくお願いしますorz
VC++6.0にて、
あるプログラムの閾値をスライダーで調整できるようにしろ、との実習が出たのですが、
ResourceViewタグのDialogでウィンドウ内にスライダーを作ったところでつまずいています。
スライダーとプログラムはどうすれば関連付けられるのでしょうか。
0371デフォルトの名無しさん
2010/01/19(火) 09:22:150372デフォルトの名無しさん
2010/01/19(火) 10:05:340373358
2010/01/19(火) 11:37:32参照URL:http://support.microsoft.com/kb/148652/ja
プロジェクト→プロパティ→構成プロパティ→リンカ→入力を選択
「特定のライブラリの無視」に Nafxcwd.lib Libcmtd.lib を入力
「追加の依存ファイル」にも Nafxcw.lib Libcmt.lib を入力
で、ビルド成功しました!
皆様、アドバイスありがとうございました!
しかーし!!
「例外 不明なソフトウェア例外(0xc0000409)がアプリケーションの0x00411741で発生しました」
と表示され、エラーとなってしまいます。
ググってみても、SPのバージョンが低いとかセキュリティの問題と出てきますが、
他に考えられる原因はありますか?
0374デフォルトの名無しさん
2010/01/19(火) 11:58:100375373
2010/01/19(火) 13:51:25いろいろって何ですか?
教えてくらはい(>_<)
0376デフォルトの名無しさん
2010/01/19(火) 14:00:44いやです(>_<)w
0377デフォルトの名無しさん
2010/01/19(火) 20:09:19ドキュメントにhellowprld.cppといファイル名でテキストで
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
と入力、helloworld.cppという名前で保存
Visual C++ 2008 Express Editionのコマンドプロントを開いて
[cd \]と入力さらに[cd cpp]とうつと指定されたパスが見つかりませんになります
なぜでしょうか?
0378デフォルトの名無しさん
2010/01/19(火) 20:23:180379デフォルトの名無しさん
2010/01/19(火) 20:25:260380デフォルトの名無しさん
2010/01/20(水) 12:01:19>なぜでしょうか?
ドライブが違うんだろ
0381デフォルトの名無しさん
2010/01/20(水) 12:25:25>helloworld.cppという名前で保存
この保存場所さえ把握してないのではw
0382デフォルトの名無しさん
2010/01/20(水) 12:27:26プログラムを学習できるサイトならググればいくらでもあるよ。
VisualStudioの使い方なら↓を参照。
http://www.atmarkit.co.jp/fdotnet/easyvs2008/index/index.html
http://msdn.microsoft.com/ja-jp/library/h8w79z10%28VS.80%29.aspx
0383デフォルトの名無しさん
2010/01/20(水) 12:28:30プログラムを学習できるサイトならググればいくらでもあるよ。
VisualStudioの使い方なら↓を参照。
http://www.atmarkit.co.jp/fdotnet/easyvs2008/index/index.html
http://msdn.microsoft.com/ja-jp/library/h8w79z10%28VS.80%29.aspx
0384デフォルトの名無しさん
2010/01/25(月) 11:49:202005からの機能らしいですけど、2005のアカデミックバージョンは対象外ですか。
関数の定義など、他の部分でのコードの折り畳みはできるんですが……。
0385デフォルトの名無しさん
2010/01/25(月) 16:39:39Windowsフォームアプリケーションで作るとC++/CLIになるのですね?
CLIを使用しないで、フォームを使用したアプリケーションを作成するには、どうしたら良いのでしょうか?
0386デフォルトの名無しさん
2010/01/25(月) 16:45:00ダイアログリソースということなら、外部のリソースエディタ使って組み込むのはできる。
0387デフォルトの名無しさん
2010/01/25(月) 16:59:28std買ってMFC
0388385
2010/01/25(月) 17:04:27C++/CLIでは.NET用のライブラリしか使えず、C++用のライブラリを使用したいのですが、
どうやって作成していいのか混乱してしまって・・・。
ダイアログソースで作成する場合、どのようなリソースエディタを使用すれば良いのでしょうか?
0389デフォルトの名無しさん
2010/01/25(月) 17:30:51自分もVS 2005のアカデミックで今試してみたけど、
#pragma region hoge 〜 #pragma endregionは使えているよ。
何か間違えていない?
0390デフォルトの名無しさん
2010/01/25(月) 17:40:13>>387がいいとは思うけど、リソースエディタでググれば2,3種類くらいに絞れると思うよ。
組み込むには、VC++EEに付属のrc.exeをビルドイベントとかで設定してやればいい
0391385
2010/01/25(月) 18:03:01>>390
ありがとうございます。
MFCがどんな物か、VS2010βを使用してみたのですが、MFCで作成しようとするとなんかややこしそうですね。
リソースエディタはresEditを使用している人が多そうですね。
http://www.hor-net.org/~vorga/freedev3vcee2.html
ここの説明わかりやすかったので、使ってみようと思います。
ありがとうございました。
0392384
2010/01/25(月) 18:03:01#include <windows.h>
int function(int n) {
return n * 2;
}
#pragma region hoge
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) {
return func(0);
}
#pragma endregion
こういう単純なコードですら、働いてくれません。しかも、この場合だとwWinMainまで死にます。
このコードに間違いはありますか?
0393デフォルトの名無しさん
2010/01/25(月) 18:38:360394393
2010/01/25(月) 18:39:56○vector
恥ずかしい死にたい
0395393
2010/01/25(月) 20:04:15○使っているのですか
もう俺死んだ方がいい
0396デフォルトの名無しさん
2010/01/25(月) 20:17:27細けえことは気にすんな!
0397デフォルトの名無しさん
2010/01/26(火) 00:54:54HorizontalScroll->Valueの値をスクロールイベントでいじっても0に戻ってしまいます。
回避する方法はないものでしょうか?
Formにはその他のコントロールは一切無し、したがってAutoScrollはFalseです。
Show時にHorizontalScrollをVisibleにしてファイルをドロップした段階でEnableにします。
デバッグ用に値を観察しているのですが、スクロールイベント終了時には値は正常なようです。
しかし再度イベントが発生した時にValueが0からやり直し、といった具合です。
主な目的は画像の貼り付けと表示です。
よろしくお願いします。
0398デフォルトの名無しさん
2010/01/26(火) 09:51:240399デフォルトの名無しさん
2010/01/26(火) 22:19:11現在View に表示されているテキストが、ファイルから読みこんだものか、
それ以外(コピペまたは、キーボードからの入力)を識別するAPI や方法があれば教えてもらえないでしょうか。
0400デフォルトの名無しさん
2010/01/28(木) 04:53:40MSペイントのキャンバスサイズをアンカーポイント?でつかんでサイズを自由に変更できるようになっているんですが、
あの処理は一から自分で組まないといけないのでしょうか?
それとも設定するだけで簡単に組み込めるようなクラスなどがあるのでしょうか?
0401デフォルトの名無しさん
2010/01/28(木) 20:02:24私はC++でなく、C言語でプログラミングをしたいのですが、
どのように操作すればソースをコードできるのでしょうか。
教えて下さい。お願いします。
0402デフォルトの名無しさん
2010/01/28(木) 20:07:37.cっていう拡張子のファイルにソースを書いて開けばビルドできるんじゃなかった?
0403401
2010/01/28(木) 20:11:240404デフォルトの名無しさん
2010/01/28(木) 20:52:34でも指定できる。
プロジェクト全体でもファイル個別でも。
0405デフォルトの名無しさん
2010/01/30(土) 22:55:41{devenv,vcexpress} /debugexe hoge.exeでいいわけで
0406デフォルトの名無しさん
2010/01/31(日) 13:35:27誰かに指示されてるならそいつに聞けよ。
0407デフォルトの名無しさん
2010/02/02(火) 10:43:090408デフォルトの名無しさん
2010/02/09(火) 00:39:19一週間くらい前からプログラミングに興味を持ち、C++2008をダウンロードして
やっているのですが、初めてのプログラミングはこのソフトからでいいのでしょうか?
ほかにもっとわかりやすいのがありました教えて欲しいのですが・・・
0409デフォルトの名無しさん
2010/02/09(火) 01:46:52「そのために何が必要か」ってアプローチが結果的に早道になると思う
0410デフォルトの名無しさん
2010/02/09(火) 07:22:29どうせ使う気があるなら最初からVC++で慣れればいいじゃん
0411デフォルトの名無しさん
2010/02/09(火) 10:58:36悪いことはイワン
C#にしとけ
0412デフォルトの名無しさん
2010/02/09(火) 19:08:19いやC#はやめとけ
未来が暗い。
C++かC言語にしとけ。
0413デフォルトの名無しさん
2010/02/09(火) 19:43:45>>410
>>411
>>412
返答ありがとうございます。
このままC++を使うことにしました。
411さん、自分にはあまりC#はあってないと思ったのでC++にします。
せっかく返答していただいたのに申し訳ありません。
皆さんありがとうございました。
0414デフォルトの名無しさん
2010/02/09(火) 19:52:47初心者がWinのプログラムを始めるには.Netしかないだろ?
そうするとCLIでやんなきゃならん。
だったらC#でいいんじゃないか?
0415デフォルトの名無しさん
2010/02/09(火) 19:56:33挫折するよ
0416412
2010/02/09(火) 20:27:48>>415の言うことは大抵は真実。
たまに才能があるヤツは別だけど、
いきなりやると嫌になるだけな気がするんだぜ。
0417デフォルトの名無しさん
2010/02/10(水) 16:38:16何かと併用するならいいけど、それから始めるのはまずいかもね。
0418デフォルトの名無しさん
2010/02/10(水) 18:54:35そうか?
C#よりP言語系のが便利だし、
就職できるかどうかの勝負なら便利言語以外も習得
するようになるだろう。
まああれだ、要するに
P言語(Python, Pascal, PHP)かC言語の
どっちか両極端からやるのがオススメ。
0419デフォルトの名無しさん
2010/02/10(水) 18:55:48あるスタティックライブラリの一部を利用するスタティックライブラリを作成したいのですが
どのように設定すればいいでしょうか
0420デフォルトの名無しさん
2010/02/10(水) 19:25:08Rubyをわすれないでください
0421デフォルトの名無しさん
2010/02/10(水) 22:24:230422デフォルトの名無しさん
2010/02/11(木) 22:47:40スタティックライブラリのプロジェクトでcpp内でreplacement newが使えないのです
#include <new>も書いています.
どなたか解決法をご存じの方がいましたらよろしくお願いします
0423デフォルトの名無しさん
2010/02/11(木) 23:12:370424デフォルトの名無しさん
2010/02/11(木) 23:19:15すみません
0425デフォルトの名無しさん
2010/02/11(木) 23:24:4210行くらいのnewヘッダだけ使った最小コードでも使えないの?
VC++2005Academicだとこんなコードで動くけどさ。
http://codepad.org/vqalFgq7
#include <new>
#include <iostream>
int main() {
const int ARRAYSIZE = 100;
int *parray = new int[ARRAYSIZE];
for (int i = 0; i < ARRAYSIZE; i++)
new (parray + i) int(i);
for (int i = 0; i < ARRAYSIZE; i++)
std::cout << parray[i] << std::endl;
delete [] parray;
return 0;
}
0426デフォルトの名無しさん
2010/02/11(木) 23:34:43チェックしてみます.ありがとうございます.
0427デフォルトの名無しさん
2010/02/11(木) 23:40:58ありがとうございます
0428デフォルトの名無しさん
2010/02/14(日) 11:18:49今さら9x対応にするメリットもないし、書き方が冗長になるし
無駄な努力のように思えてきました。
皆さんの見解はどうですか?
0429デフォルトの名無しさん
2010/02/14(日) 11:44:38自分だけで完結するならいらんだろう
0430デフォルトの名無しさん
2010/02/14(日) 12:29:54よくわかりました、ありがとうございます。
0431デフォルトの名無しさん
2010/02/15(月) 03:26:16Visual C++ .NET環境で下のようにIMEモードをNoControlにしているのですが、自作アプリケーションで
全角にした後に他のウィンドウにフォーカスを移して、また戻すと半角に戻ってしまっています。
ユーザーが設定した情報をフォーカスを変えても保持するようにするにはどうしたら良いのでしょうか?
よろしくお願いします。
this->ImeMode = System::Windows::Forms::ImeMode::NoControl;
0433デフォルトの名無しさん
2010/02/15(月) 10:53:36あなたが使ってるのはC++ではなくC++/CLIという別の言語です。
C++/CLIには専用のスレもありますが、その手の質問はC++/CLIスレでも嫌われるので
C#かVB.NETの書き方を覚えてそっちで聞いた方がいいと思います。全く同じなので。
0434431
2010/02/15(月) 16:38:22回答ありがとうございます。このスレの方が良いと誘導されたのですが、
VB.NETスレに戻って質問した方が良いと言う事でしょうか?
0435デフォルトの名無しさん
2010/02/15(月) 16:43:20他のウィンドウのほうが悪さをしてる
0436デフォルトの名無しさん
2010/02/15(月) 17:30:580437デフォルトの名無しさん
2010/02/15(月) 23:38:330438デフォルトの名無しさん
2010/02/16(火) 09:40:00相互運用専用の言語なのでそんなものが必要になるようなら使い方が間違ってる
0439デフォルトの名無しさん
2010/02/17(水) 00:26:57XP32bitを使っていたときも同じ症状があったんですけど、フリーズするタイミングがいつもバラバラでなにが原因なのかよくわからないんですけど・・・
0440デフォルトの名無しさん
2010/02/17(水) 00:44:17オートセーブみたいな機能([ツール]→[オプション]→[環境]→[自動バックアップ])
0441デフォルトの名無しさん
2010/02/17(水) 01:25:07レスありがとうございます。
保存のたびに一瞬止まってたんですね
0442デフォルトの名無しさん
2010/02/17(水) 14:59:22そのためにはiTunes 1.1 Type Libraryを参照に追加しなければならないようなのですが、
この参照に追加する方法が分かりません。
どのようにすれば設定できるのでしょうか?
0443デフォルトの名無しさん
2010/02/17(水) 15:10:300444デフォルトの名無しさん
2010/02/17(水) 15:19:33C++なら付属のhとc組み込む
0445442
2010/02/17(水) 15:30:05どうもありがとうございました。
0446デフォルトの名無しさん
2010/02/18(木) 21:55:56どうしても見つかりません。
リソースを挿入したいのですが…。
0447デフォルトの名無しさん
2010/02/18(木) 22:22:40まあハック的手法を使えばリソース挿入できない事もないけどVCだけでは出来ない
0448デフォルトの名無しさん
2010/02/19(金) 13:32:15rcを手書きか、 RcEdit使いなはれ
0449デフォルトの名無しさん
2010/02/19(金) 17:05:34途中でデバッグの停止をしたらコマンドプロンプトのウィンドウが残ったままになってしまいました。
このウィンドウを消したいのですが、×ボタンを押しても、右クリックで閉じるを選んでも消えてくれません。
どうすれば消すことが出来るのでしょうか。
0450デフォルトの名無しさん
2010/02/19(金) 17:10:050451デフォルトの名無しさん
2010/02/19(金) 17:19:260452デフォルトの名無しさん
2010/02/19(金) 17:20:510453デフォルトの名無しさん
2010/02/19(金) 17:23:030454デフォルトの名無しさん
2010/02/19(金) 17:36:52仕方なく電源ボタン長押しで強制的に切ってきました。
0455デフォルトの名無しさん
2010/02/19(金) 17:42:50パソコンを起動して、再びデバッグ中に停止したら同じ症状に陥りました。
再起動以外の方法で何とかウィンドウを消せないでしょうか。
0456デフォルトの名無しさん
2010/02/19(金) 17:48:58>>448
手書きでリソース書くことにしました。
ありがとうございます。
0457デフォルトの名無しさん
2010/02/19(金) 19:38:10うちはならない
VC++を再インストールしてみたら?
0458デフォルトの名無しさん
2010/02/19(金) 19:42:08多分メニューからデバッグの停止
CTRL+Cで停止するとそうなったような
0459デフォルトの名無しさん
2010/02/19(金) 19:49:010460デフォルトの名無しさん
2010/02/19(金) 22:11:10ありがとうございました。
0461デフォルトの名無しさん
2010/02/19(金) 23:22:440462デフォルトの名無しさん
2010/02/19(金) 23:33:15そんな特殊な状況、他に発生するのか?w
0463デフォルトの名無しさん
2010/02/20(土) 03:23:25ウィンドウにボタン配置したりする画面
あれどうやって出すの?
0464デフォルトの名無しさん
2010/02/20(土) 03:30:440465デフォルトの名無しさん
2010/02/20(土) 04:26:44素早い回答ありがとうございます
0466デフォルトの名無しさん
2010/02/20(土) 11:17:58分からないことがあるので、どうか教えて下さい。
main関数を、int main(int argc, char *argv[])
のように、引数対応型にして、
コマンドラインから引数を渡すのではなく、
VC++のGUI上で引数を渡してビルドできるようになりたいです。
よろしければ、どうすれば良いか教えて下さい。
ちなみに、コマンドプロンプトではソースファイルをコンパイルできるんですが
GUIでは、何故かコンパイルできません。
0467デフォルトの名無しさん
2010/02/20(土) 11:33:58で、デバッグ実行時のコマンドライン引数を与えることはできるけど。
0468デフォルトの名無しさん
2010/02/20(土) 17:04:320469デフォルトの名無しさん
2010/02/20(土) 20:01:49C++とか、いろんな本が売ってるんですけど、C++って書いてある本を買えば
まちがいないですか?
0470デフォルトの名無しさん
2010/02/20(土) 20:08:03初心者向けとか、特定のコンパイラ向けとかあるから、目的にかなったのを
選択しないとだめ。
0471デフォルトの名無しさん
2010/02/20(土) 20:18:51いろんなのが出ててまよってました。ありがとうございます。
0472デフォルトの名無しさん
2010/02/20(土) 21:20:21間違いだらけです
初心者向けとか入門書とかはすぐ使えなくなるから買っちゃだめ
0473デフォルトの名無しさん
2010/02/20(土) 21:24:59毎回入力するのが面倒なら
あらかじめ設定しとくのも
悪くはないと思うんだけど
普通はテストのために引数
変えながら試すはずだから
もしそういうことを自動で
やりたいなら敢えてテスト
用のプログラムを書いてね
0474デフォルトの名無しさん
2010/02/20(土) 21:47:36どれのことなんだ。
0475デフォルトの名無しさん
2010/02/20(土) 21:59:400476デフォルトの名無しさん
2010/02/20(土) 22:55:430477デフォルトの名無しさん
2010/02/20(土) 23:00:590478デフォルトの名無しさん
2010/02/20(土) 23:04:50enumはCにもあるだろ。
0479デフォルトの名無しさん
2010/02/24(水) 23:54:14一応visualC++のプロジェクトだったので質問します。
WMPの視覚エフェクトがつくりたくて
ttp://blogs.wankuma.com/ch3cooh/archive/2008/03/11/127149.aspx
のサイトを見ながらVisual Studio2008でプロジェクトを作成するまでは
上手くいったのですが、ビルドの際に、
'midl.exe' の起動中にエラーが発生しました。
とのエラーがでてビルドできません。
midlのパスが間違ってるとかそういうことじゃないのかなぁと思うのですが、
調べてもよくわかりませんでした。
助けてください。
0480479
2010/02/25(木) 00:34:03ハードディスク内をmidl.exeで検索すると2種類でてきたので
VC\binにつっこんだらエラーが
error MIDL2398 : cannot execute MIDL engine
に変わりました。
これもmidlを起動できないとのメッセージですが英語になりました。
0481デフォルトの名無しさん
2010/02/25(木) 09:50:130482デフォルトの名無しさん
2010/02/26(金) 21:37:54下のようになって進めません。
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>cd /D C:\c-lang\chapter03
C:\c-lang\chapter03>cl hello.c
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
hello.c
hello.c(1) : fatal error C1021: プリプロセッサ コマンド 'inclube' が無効です。
C:\c-lang\chapter03>
どうすればいいか教えてくれたらうれしいです。
visual studio 2008を使ってます。
0483デフォルトの名無しさん
2010/02/26(金) 21:40:480484482
2010/02/26(金) 22:24:400485デフォルトの名無しさん
2010/02/26(金) 22:26:48includeでやってみろよ
0486デフォルトの名無しさん
2010/02/26(金) 22:29:14http://pc12.2ch.net/test/read.cgi/tech/1264920499/772
0487482
2010/02/26(金) 22:29:300488デフォルトの名無しさん
2010/02/26(金) 22:31:200489482
2010/02/26(金) 22:38:36書き換えようとしてもけすことも書くことも無理です
0490デフォルトの名無しさん
2010/02/26(金) 22:40:300491デフォルトの名無しさん
2010/02/26(金) 22:42:00#inclube って書いてあんだろ?
それを書き換える
何にもできないのはなぜだ?
0492482
2010/02/26(金) 22:45:170493デフォルトの名無しさん
2010/02/27(土) 03:11:55ファイル名から始まって変数名の付け方等悩んでいます。
別に拘りがあるわけではないので、何か適当な規則に従ってみようと思っているのですが、
VC++についてくるサンプルコード等参考にしつつコードを書いているのですが、
サンプルコード間でも割と記法がばらついており、さてどんな形で統一しようかと考え込んでしまいます。
MSDN等にコーディング規約に関する記事などありますでしょうか。
或いはまとまった大きめのコード(色んな記法を見れるコード)などあれば教えて頂けると幸いです。
0494デフォルトの名無しさん
2010/02/27(土) 04:31:210495デフォルトの名無しさん
2010/02/27(土) 05:24:47http://pc12.2ch.net/test/read.cgi/tech/1258777686/
0496デフォルトの名無しさん
2010/02/27(土) 08:19:10どっぷりWindowsプログラムなので、MS教を信奉しようと思っているのですが、
.NET周辺は
MS自身も宗派替えをしてる感もあり、宗派選びの参考となる宗教書は無いかと思いまして。
>>495
どうもありがとうございます。そのスレは確認したのですが、
適当な名称、単語についてのアドバイスを貰うスレで、
>>命名規則や設計の善し悪しについて議論するのは基本的に禁止
ということでしたので、避けてこちらで相談させて貰いました。
スレチでしたら申し訳ない。
0497デフォルトの名無しさん
2010/02/27(土) 11:35:49宗派のひとつ
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95
0498デフォルトの名無しさん
2010/02/27(土) 22:09:44ソースにコメントを書いているのに実行したら結果にそのコメントらしきものが
見当たりません。
コメントの意味って何なのですか?お願いします。
0499デフォルトの名無しさん
2010/02/27(土) 22:12:16・他の人が見てわかりやすい
・後で見返したときにどういうことしてるかわかる
・メモ程度に忘れないようにかいとく
0500498
2010/02/27(土) 22:30:59要するにソースだけであって実行には関係ないものなんですね。
よくわかりました。
0501デフォルトの名無しさん
2010/02/27(土) 22:47:59ソースを書いているのに実行したら結果にソースらしきものが
見当たりません。
ソースの意味って何なのですか?お願いします。
0502デフォルトの名無しさん
2010/02/28(日) 18:18:41・人間が見てわかりやすい
・後で見返したときにどういうことしてるかわかる
・プログラムの動作をCPUが判るレベルに細かく分割してかいとく
0503デフォルトの名無しさん
2010/02/28(日) 21:18:31printf("整数の定数=%f \n", 10);
では正しく動作しないんですよね?なのに
printf("加算の表示=%f \n", 55.0 + 10);
の10は整数なのに正しく動作します
そこんとことよく分からんのです
答えてくれたら有難いです
0504デフォルトの名無しさん
2010/02/28(日) 21:25:410505デフォルトの名無しさん
2010/02/28(日) 21:27:370506デフォルトの名無しさん
2010/02/28(日) 21:52:23「正しく動作しない」じゃなくて「誰かが思ってる通りに動作しない」だろ
じゃなきゃコンパイラに欠陥があるってことか
0507デフォルトの名無しさん
2010/02/28(日) 21:54:110508デフォルトの名無しさん
2010/03/02(火) 21:06:20for(j=0;j<6;j++){chosen[j] = {"abt","abc","abc",0,0,101};}←まずこれがコンパイルできません、一つ一つ丁寧に入れないといけないのでしょうか?ちなみにVisual C++ 2008です
そしてもう一つの関数内でchosen[random()%5].nameというふうに使いたいから
namespace ホゲ {
using namespace System;
using namespace System::Drawing;
struct choosedata { メンバ};
int random ;
struct choosedata chosen[6];
と一番上で宣言してるのですが、privateとかC++のことが良くわかってなくてフォームアプリケーションのヘッダに書いてるのですがここはおかしいですか?
sscanf(data,"%s ; %s ; %s ; %d ; %d ; %d",&chosen[5].type,&chosen[5].name,&chosen[5].answer,&chosen[5].right,&chosen[5].times,&chosen[5].rate);
それとここで%sの文字列がちゃんと入らないのですが何がおかしいのでしょうか?
よろしくおねがいします!
0509鬼神の名無し
2010/03/02(火) 21:26:280511デフォルトの名無しさん
2010/03/03(水) 00:15:26srand((unsigned int)time(0));
a = (int)((rand() / ((double)RAND_MAX+1.0f)) * 10);
をしましたがデバッグを開始にしてもデバッグなしで開始にしても同じ値しか入りません
0512デフォルトの名無しさん
2010/03/03(水) 01:03:58ちょっとVC8で試してみたけどsrandの実装がショボイみたいだね。
一番最初に呼ぶrandがtimeと比例するような近い値を返してきてるから結果的に同じ値がaに入ることになる。
改善するにはtimeで得た値をsrandに渡す前にCRCとか使ってかき混ぜるのがいいと思う。
0513デフォルトの名無しさん
2010/03/03(水) 06:49:000514デフォルトの名無しさん
2010/03/03(水) 10:56:03stdafx.hを使用したいのですが、プロジェクトを作成する時にMFCを選択しないと使用出来ないのでしょうか?
Win32の空プロジェクトのような、スッキリしたプロジェクトで使用することはできませんか?
よろしくお願いします。
0515デフォルトの名無しさん
2010/03/03(水) 11:15:450516デフォルトの名無しさん
2010/03/03(水) 11:23:30C言語の仕様に対してVC++のライブラリのsrandの実装がショボイと言ってるように聞こえるな
0517デフォルトの名無しさん
2010/03/03(水) 11:38:470518514
2010/03/03(水) 12:05:12βを落とした理由が、ExpressではMFCが使えないとのことでしたので。
0519デフォルトの名無しさん
2010/03/03(水) 12:20:59プリコンパイルヘッダーを使用する設定にすればいいんじゃね?
0520デフォルトの名無しさん
2010/03/03(水) 12:21:22うかつに回答しなくて良かった
0521デフォルトの名無しさん
2010/03/03(水) 12:36:51「stdafx.h 使わない」で検索すれば一発で見つかる
0522デフォルトの名無しさん
2010/03/03(水) 15:00:02ありがとうございました
0523デフォルトの名無しさん
2010/03/03(水) 16:50:21まだ間に合うかな・・・
printf("整数の定数=%f \n", 10);
コンパイラは10をint型で扱うのね。%fはfloat型だから一致してないわけで正しく表示させません。
printf("整数の定数=%f \n", 55.0+10);
これは55.0がfloat型なのでそれに10足したら65.0になるわけで%fで正しく表示されます。
55.0と10を足したらfloatになる・・・のはC言語の暗黙の型変換というヤツです。
コレに対して、10をfloatであると明示的に書いてやれば%fで正しく表示されます。
printf("整数の定数=%f \n", 10F);
printf("整数の定数=%f \n", (float)10);
printf("整数の定数=%f \n", 10.0);
etc
0524デフォルトの名無しさん
2010/03/03(水) 16:57:27printf("整数の定数=%f \n", 10F);
では無く
printf("整数の定数=%f \n", 10.0F);
でした
0525デフォルトの名無しさん
2010/03/03(水) 18:11:12while(fget(fp,,))ループのあるタイミングで*fpc = *fpとしてfpritf(fpc,"",)としようとすると、*fpc = *fpの行で「オブジェクト参照がオブジェクト インスタンスに設定されていません」
のエラーが出ます
fpc=fpとして同じようにすると、while(fget(fp,,))で最後まで回ってるからかfpritf(fpc)としても最後に書き込まれてしまいます
どうすれば良いのでしょうか?
0526デフォルトの名無しさん
2010/03/03(水) 18:18:20って上書きしかできんから行の長さかえられんけどいいのか
0527デフォルトの名無しさん
2010/03/03(水) 18:25:04行の長さが変えられないって数字だとしたら桁が変えられないってことですか?
ファイルを2個作るのが普通なのでしょうか?
ファイル1を開く、ある行を計算して保持しておく、ファイル2をwで開く、その行以外はコピー、その行に来た時保持しておいた値を書く
次また同じ操作をしたい時はファイル2をrで開いてファイル1をwで開く、というふうにするのですか?
0528デフォルトの名無しさん
2010/03/03(水) 18:27:40通常はテンポラリファイル作るかオンメモリでやるかってとこかなあ
0529デフォルトの名無しさん
2010/03/03(水) 18:39:29ちなみに
フォームアプリケーションを作るのに
C#で作るのと
C++でフォームアプリケーションから作るのと
C++で空のプロジェクトから作るのと
動作の軽さは結構違うのどうか教えてください!
0530デフォルトの名無しさん
2010/03/03(水) 18:46:170531デフォルトの名無しさん
2010/03/03(水) 18:54:140532デフォルトの名無しさん
2010/03/03(水) 19:10:27使う人によっても感じ方が違うだろうから
本人が実際につくって試してみるしかない。
0533デフォルトの名無しさん
2010/03/03(水) 19:16:35素人が作るなら大して変わらないし、パソコンは高性能に
なってきてるから、よっぽどのことがない限り、どれもたいして
重くならない、とも言える。
0534デフォルトの名無しさん
2010/03/03(水) 20:10:040535デフォルトの名無しさん
2010/03/03(水) 20:27:06C#でもC++でも.NET Frameworkで動くのだからどっちで書いても同じというのが答えだ。
0536デフォルトの名無しさん
2010/03/03(水) 20:40:480537デフォルトの名無しさん
2010/03/03(水) 20:55:4355.0はdoubleだろ?
0538デフォルトの名無しさん
2010/03/03(水) 21:12:100539デフォルトの名無しさん
2010/03/03(水) 21:12:470540デフォルトの名無しさん
2010/03/03(水) 23:50:37コンソールアプリケーションを作っているのですが、
デバッグを使っていて、ブレークポイントに達した時にデバッグ停止すると、何故か
コンソールが残ったままになります。Windows終了時も消すことが出来ず、
電源を強制的に切らなければなりません。
どうすれば直せますか?
0541デフォルトの名無しさん
2010/03/04(木) 03:38:330542デフォルトの名無しさん
2010/03/04(木) 09:48:47もしかして自分用語ならググっても見つけらないだろ
0543デフォルトの名無しさん
2010/03/04(木) 10:03:26ほっときゃいいじゃん、いつかは電源切るんだし。
つかVS上でシフトF5でデバッグ中止しても残るの?
0544デフォルトの名無しさん
2010/03/04(木) 10:08:34環境書いた方がいいよ、formのLabelだろ?
もともと自動改行するよ、AutoSize をfalseにしてみては。
まあワードラップの問題も出るだろうけど
0545デフォルトの名無しさん
2010/03/04(木) 15:27:55cppファイル上に#include "stdafx.h"が存在しない場合、
warning C4627及びfatal error C1010(プリコンパイルヘッダが見つからない)
が発生し、ビルドに失敗します。
これだけなら各ファイルでstdafx.hをインクルードしてやれば良い話なのですが、
フォルダ分けを行っている場合、例えば#include "../stdafx.h"というような
形でインクルードしている場合にも同様のエラーでビルドに失敗します。
パスが存在しないにも関わらず、#include "stdafx.h"も加えてやると
デバッグ設定ではなんとビルドが通るのですが、
リリース設定にすると当然ながらエラーが出てはねられます。
とりあえずプリプロセッサを使って宣言を切り替えているのですが、気持ち悪いです。
何か適切な対処の方法はあるでしょうか。
0546デフォルトの名無しさん
2010/03/04(木) 15:32:15プロジェクトで右クリックしてプロパティ出して
左上の構成のとこを「すべての構成」にして← ここ重要(Debug Releaseで2回設定してもいいけど)
構成プロパティのC/C++のプリコンパイル済みヘッダーのとこの
プリコンパイル済みヘッダーの作成/使用 を「使用しない」にする
0547デフォルトの名無しさん
2010/03/04(木) 15:33:180548545
2010/03/04(木) 15:56:16プリコンパイル済みヘッダは使ってるんです。規模が大きくなってくると恩恵も大きいですし。
ちゃんと明記するべきでしたね、すみません。
>>547
あー。確かに。ちょっと気持ち悪いですけれど、仕方ないかなぁ。どうもありがとうございます。
0549デフォルトの名無しさん
2010/03/04(木) 16:08:18上のstdafx.hの中で、別のstdafx.hをincludeするのがいいのかな
つーか別のやつをstdafx.hという名前以外にしてしまえばいいのでは
0550デフォルトの名無しさん
2010/03/04(木) 16:35:380551デフォルトの名無しさん
2010/03/04(木) 17:41:49ありがとうございましたできました
Visual C++なので環境はみんな一緒かと思ってました
昨日はパネルの上にラベルを乗せてて、Autosizeをfalseにしてもできなかったような気がしてたのですけれども
0552デフォルトの名無しさん
2010/03/04(木) 17:51:29falseにした上で高さのリサイズした?
0553デフォルトの名無しさん
2010/03/04(木) 17:54:16あ、そういえば昨日はしてなかったような気がしまつ
0554デフォルトの名無しさん
2010/03/04(木) 19:14:04#ifdefとか#ifとかの使い方教えてください
使うとどうなるのかも教えてください
0555デフォルトの名無しさん
2010/03/04(木) 19:20:040556デフォルトの名無しさん
2010/03/04(木) 19:23:530557デフォルトの名無しさん
2010/03/04(木) 19:27:550558デフォルトの名無しさん
2010/03/04(木) 19:43:250559デフォルトの名無しさん
2010/03/05(金) 10:02:15コンパイルされるコードを切り替えます。
#ifdef _DEBUG
デバックモードのときだけコンパイルされる
#endif
とか、
#ifdef _DEBUG
デバックモードのときだけコンパイルされる
#else
デバックモード以外のときコンパイルされる
#endif
などなど、何か事情があってコンパイルを切り替えたいときに使います。
また、#ifは
#if 0
ここはコンパイルされません。
#endif
という感じでとりあえずコンパイルしない・・・という感じでよく使います。
0560デフォルトの名無しさん
2010/03/05(金) 10:24:05デバックモードってどういうメリットがあるんですか?
0561デフォルトの名無しさん
2010/03/05(金) 10:39:240562デフォルトの名無しさん
2010/03/05(金) 11:00:01デバック時で言うと一般的なのはログとかですかねー
TRACE使ってれてば問題ないですが。MFCが要るんでしたっけ?
#ifdef _DEBUG
OutPutDebugString(msg)
#endif
0563デフォルトの名無しさん
2010/03/05(金) 11:33:29TRACEの使い方教えてください
0564デフォルトの名無しさん
2010/03/05(金) 11:48:580565デフォルトの名無しさん
2010/03/05(金) 11:49:37TRACEは普通にprintfと同じです。
TRACE("デバック - i=%d",i);
で出力ウィンドウに出ます。
また、リリースモードでは出力されません。
わずかとは言え負荷の観点からも
リリースモードではログ出力は避けたほうがいいですね。
0566デフォルトの名無しさん
2010/03/05(金) 11:59:340567デフォルトの名無しさん
2010/03/05(金) 16:20:16private: System::Void panel1_MouseWheel(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{label1->Text="lghol";panel1->Invalidate();}
マウスでスクロールできるようにしたいのでまずはホイールイベントを検出したいのですが、これを追加するだけでは何が足りないのでしょうか?
VC++です、それと
case 数字:
{srand((unsigned int)time(0));
int rand = (int)(rand()%2);処理〜}
のrandに0しか入らないのですが何故でしょうか?
0568デフォルトの名無しさん
2010/03/05(金) 16:34:210569デフォルトの名無しさん
2010/03/05(金) 17:04:48前者:よさそうに見えるなぁ。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.mousewheel.aspx
1行目は実行されてるよね?
後者:rand()の前に必ずsrand()を呼ぶのは変。
普通はsrand()はアプリ起動時に1回だけ呼ぶもの。
あと、srand()直後のrand()はかなりseedに比例するような値が出る実装がよくあるらしい。
「srand()してrand()を100回やる」をアプリ起動時に1回やる、case 数字:ではrand()だけ呼ぶ
ってやってみて。
0570デフォルトの名無しさん
2010/03/05(金) 17:40:22ありがとうございます
種のことはよくわかりませんが序盤で1回srand()してrand()して4で割った余りで場合わけしてるのですが、その中でまたrand()を%2したいので
srand()をしないとrand()は同じ数が出ると聞いたので
(今そうなっているわけじゃないですが)4で割って2余る中でまたrand()を呼んで%2しても0に決まってるので、確率2分の1をsrand()せずにrand()%2では不味いので毎回呼ぶのかなあと思ったのですが大丈夫なのでしょうか?
ちなみに一行目はInitializeComponent(void)の中でパネルがいっぱい設定されてるところの最後に入れています
this->panel1->AutoScroll = true;
this->panel1->Controls->Add(this->pictureBox1);
this->panel1->Controls->Add(this->label1);
this->panel1->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(128)));
this->panel1->Location = System::Drawing::Point(16, 1);
this->panel1->Name = L"panel1";
this->panel1->Size = System::Drawing::Size(922, 421);
this->panel1->TabIndex = 3;
this->panel1->MouseWheel += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::panel1_MouseWheel);
その後パネルはthis->panel1->Location = System::Drawing::Point(16, 1);
this->panel1->Size = System::Drawing::Size(933, 326);
しかいじってません(`;ω;´)
0571デフォルトの名無しさん
2010/03/05(金) 18:37:12MouseWheelはコントロールがフォーカスを持ってる時しか来ないのね。
panelは普通フォーカスを持たないのでこない。
panel1->Focus()をすれば来るんだけど、別のコントロールで入力したりするとまた来なくなる。
MouseWheelはForm1でとるようにしてはどうだろう。this->MouseWheel += 〜〜 と。
>srand()をしないとrand()は同じ数が出ると聞いたので
それは、srand()を全くしないと最初にsrand(1)をしたのと同じになる、という意味。
0572デフォルトの名無しさん
2010/03/05(金) 18:43:340573デフォルトの名無しさん
2010/03/05(金) 18:44:57フォームのデザイナでいじったことが書かれるところだから、デザイナが解釈できないことを
書いてしまうとデザイナでいじった時に消えてしまう。
FormのコンストラクタでInitializeComponent()を呼んだ下に書きましょう。
0574デフォルトの名無しさん
2010/03/05(金) 18:49:33TextBoxの|がチカチカしてるのですがそのせいでしょうか?
0575デフォルトの名無しさん
2010/03/05(金) 18:50:36ありがとうごいます!わかりました!
0576デフォルトの名無しさん
2010/03/05(金) 19:21:57this->MouseWheel += 〜〜 しにても
this->label1->MouseWheel += 〜〜 にしてもうんともすんともしねえ
0577デフォルトの名無しさん
2010/03/05(金) 20:14:31アプリはアクティブになってる?
0578デフォルトの名無しさん
2010/03/05(金) 20:46:57イニシャライズの後にthis->Focus();してもテキストがチカチカしたままなのですがなぜでしょうか?
0579デフォルトの名無しさん
2010/03/05(金) 20:58:56みたいなことやってみて
0580デフォルトの名無しさん
2010/03/05(金) 21:05:52パネル内のテキストボックスにフォーカスがあるならパネルにもMouseWheelはくる。
フォームの上にマウスカーソルがあっても、フォームのウィンドウがアクティブでないとこないよ。
0581デフォルトの名無しさん
2010/03/05(金) 21:05:560582デフォルトの名無しさん
2010/03/05(金) 21:16:55this->textBox1->MouseWheel += gcnew S OK
this->それ以外 ×
みたいな感じです
イニシャライズ→関数→ピクチャーボックス消し、パネル、テキストボックスサイズ書き換え ぐらいしかフォームはいじってないつもりなんですが…
イニシャライズの中はこれです。(順番とか関係あるのか知りません)
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->button1 = (gcnew System::Windows::Forms::Button());
this->panel1 = (gcnew System::Windows::Forms::Panel());
this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->panel1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->BeginInit();
this->SuspendLayout();
//
// textBox1
this->textBox1->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(128)));
this->textBox1->Location = System::Drawing::Point(16, 428);
this->textBox1->Multiline = true;
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(922, 109);
this->textBox1->TabIndex = 1;
// button1
this->button1->Location = System::Drawing::Point(786, 543);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(152, 69);
this->button1->TabIndex = 2;
this->button1->Text = L"OK";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click_1);
0583デフォルトの名無しさん
2010/03/05(金) 21:18:17this->panel1->Controls->Add(this->pictureBox1);
this->panel1->Controls->Add(this->label1);
this->panel1->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(128)));
this->panel1->Location = System::Drawing::Point(16, 1);
this->panel1->Name = L"panel1";
this->panel1->Size = System::Drawing::Size(922, 421);
this->panel1->TabIndex = 3;
// pictureBox1
this->pictureBox1->Location = System::Drawing::Point(0, 0);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(922, 396);
this->pictureBox1->TabIndex = 1;
this->pictureBox1->TabStop = false;
this->pictureBox1->Click += gcnew System::EventHandler(this, &Form1::pictureBox1_Click);
this->label1->Location = System::Drawing::Point(-4, 0);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(882, 560);
this->label1->TabIndex = 0;
this->label1->Text = L"label1";
this->ClientSize = System::Drawing::Size(950, 624);
this->Controls->Add(this->panel1);
this->Controls->Add(this->button1);
this->Controls->Add(this->textBox1);
this->Name = L"Form1";
this->panel1->ResumeLayout(false);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
0584デフォルトの名無しさん
2010/03/06(土) 02:46:26ごく単純なプロジェクトを作ってみた。想定通りにMouseWheelがくる。
よかったらこれやってみて。DLKey, ZIPPassともに「to583」。
http://kissho.xii.jp/1/src/1jyou106974.zip.html
0585デフォルトの名無しさん
2010/03/06(土) 02:56:59見比べてみます!
0586デフォルトの名無しさん
2010/03/06(土) 04:27:18後はチャーをストリーム^にしてオールファイル読み込んでるのと
何回もフォーム弄りまくってバグってるくらいしか思いつきません
0587デフォルトの名無しさん
2010/03/06(土) 04:31:01VC++超初心者のホームページに行ってみたらなくなってた!
100回くらい質問して200回くらい回答してたのに寂しいぜ・・・
どっかに過去ログないかな?
0588デフォルトの名無しさん
2010/03/06(土) 10:49:010589デフォルトの名無しさん
2010/03/07(日) 10:49:43実行することはできませんか?プログラムを開くことはできるんですが、
デバッグなどができません。どうか教えてください。
0590デフォルトの名無しさん
2010/03/07(日) 11:01:390591デフォルトの名無しさん
2010/03/07(日) 12:30:37プロジェクトなどを作成せずにとかいらん条件つけられると答えようがない。
0592デフォルトの名無しさん
2010/03/07(日) 12:32:12プロジェクト作成したときと同じ方法でデバッグできるだろ。
0593デフォルトの名無しさん
2010/03/07(日) 22:54:38ソース
int a = 10, b =5;
printf("比較の結果、小さい値は %d \n",
a < b ? a : b);
実行例
比較の結果、小さい値は 5
となりました。実行した時、どうして小さい値をちゃんと表わせたんでしょうか?
「比較の結果、小さい値は」というのは人間が見やすいようにするための物なんじゃ
ないんでしたっけ。小さい値を出すためのプログラミング言語はどれなんでしょうか?
意味分からない質問ですいません。お願いします
0594デフォルトの名無しさん
2010/03/07(日) 22:58:320595デフォルトの名無しさん
2010/03/07(日) 23:20:22int a = 10, b =5;
printf("%d\n", a < b ? a : b);
0596デフォルトの名無しさん
2010/03/07(日) 23:23:04int a = 10, b =5;
printf("比較の結果、小さい値は 5 \n")
0597デフォルトの名無しさん
2010/03/07(日) 23:23:55int a = 10, b =5;
printf("Hello, World!!! \n")
0598デフォルトの名無しさん
2010/03/07(日) 23:38:40int a = 10, b =5;
printf("お前は %d だ。 %d になるんだ。\n",
a < b ? a : b);
0599デフォルトの名無しさん
2010/03/08(月) 02:09:14よくわからんなら?と:を使わずに書け
0600defo
2010/03/08(月) 08:23:09これは
aより b が大きいなら(b より a が小さいなら)、a を値として戻せ、そうでないなら b を戻せ。
10より 5 が大きいなら(5 より 10 が小さいなら)、10 を値として戻せ、そうでないなら 5 を戻せ。
0601デフォルトの名無しさん
2010/03/08(月) 08:35:06入門書に載ってるコードでも丸写ししてるのか?
入門者に対してずいぶん不親切な書き方だな
0602デフォルトの名無しさん
2010/03/08(月) 08:42:040603defo
2010/03/08(月) 08:46:53コマンドプロンプト:\>cl /EHsc hello.cpp
なんたら・・・コンパイル成功。
コマンドプロンプト:\>hello
デバッグしてちょうだいよ。
0604デフォルトの名無しさん
2010/03/08(月) 12:21:36ソース持ってないexeをデバッグしたいんじゃないのか?
0605デフォルトの名無しさん
2010/03/08(月) 17:08:52リソース編集はSKUではサポートされていません
と出たんだがどうしたらいいの?
0606デフォルトの名無しさん
2010/03/08(月) 17:18:390607デフォルトの名無しさん
2010/03/08(月) 17:29:210608デフォルトの名無しさん
2010/03/08(月) 19:38:53#include <windows.h>
#include <mmsystem.h>
#include "resource.h"
#pragma once
namespace hello2 {
…
}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
PlaySound("C:\\***.wav",NULL,SND_FILENAME | SND_ASYNC);
}
};
}
音を出したいのですがでません、リンカでwinmmは追加済みです。
0609デフォルトの名無しさん
2010/03/08(月) 21:04:13Windowsのシステムディレクトリ、Windowsディレクトリ、環境変数PATHに記述されている各ディレクトリ、
ネットワークにマップされているディレクトリから、サウンドファイルを検索します。
0610デフォルトの名無しさん
2010/03/09(火) 06:20:49ありがとうございます。
それプラス、「Unicode文字セットを使用する」から
「マルチバイト文字セットを使用する」に変更で音がでました。
この違いは何なんでしょうか?
0611デフォルトの名無しさん
2010/03/09(火) 06:55:06ttp://fatalita.sakura.ne.jp/Junk/_T/index.html
0612デフォルトの名無しさん
2010/03/09(火) 06:57:300613デフォルトの名無しさん
2010/03/11(木) 20:11:460614デフォルトの名無しさん
2010/03/11(木) 20:21:390615デフォルトの名無しさん
2010/03/11(木) 20:21:420616デフォルトの名無しさん
2010/03/11(木) 20:59:250617デフォルトの名無しさん
2010/03/11(木) 21:10:40古いOS用にコンパイルし直すのが楽なようにやってるだけで
C言語の入門書にあるようなL()とかTEXT()とか全然使ってないソースも
問題なくコンパイルできるよ
0618デフォルトの名無しさん
2010/03/12(金) 15:44:260619デフォルトの名無しさん
2010/03/12(金) 20:40:190620デフォルトの名無しさん
2010/03/12(金) 20:40:51VC++ 2008Expressです。
Cppに extern "C" HRESULT __stdcall DllRegisterServer()
.hに extern"C" HRESULT __stdcall DllRegisterServer(void);
と宣言しています。
0621デフォルトの名無しさん
2010/03/12(金) 20:53:240622デフォルトの名無しさん
2010/03/12(金) 21:03:260623620
2010/03/12(金) 21:17:38HRESULT __stdcall DllRegisterServer()
{
HKEY hkResult; // キーのハンドル
DWORD dwDisposition; // 処理結果を受け取る
LONG lResult;
lResult = ::RegCreateKeyEx(HKEY_CLASSES_ROOT, "CLSID\\{99FFFFF-AAA3-1113-ABCD-000000000099}\\ProgID", 0,0 ,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkResult, &dwDisposition);
if( lResult == ERROR_SUCCESS )
{
char strCity[128] = "JISAKUdllver1";
::RegSetValueEx(hkResult, "", 0, REG_SZ, (CONST BYTE*)(LPCTSTR)strCity,strlen(strCity) + 1);
};
::RegCloseKey(hkResult);
HKEY ppResult; // キーのハンドル
DWORD ppk; // 処理結果を受け取る
LONG ssResult;
ssResult = ::RegCreateKeyEx(HKEY_CLASSES_ROOT, "CLSID\\{99FFFFF-AAA3-1113-ABCD-000000000099}\\InprocServer32", 0,0 ,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &ppResult, &ppk);
if( ssResult == ERROR_SUCCESS )
{
char rCity[128] = "D:\\マイドキュメント\\新しいフォルダ\\a.dll";
::RegSetValueEx(ppResult, "", 0, REG_SZ, (CONST BYTE*)(LPCTSTR)rCity, strlen(rCity) + 1);
};
::RegCloseKey(ppResult);
return S_OK;
}
0624デフォルトの名無しさん
2010/03/12(金) 21:23:130625デフォルトの名無しさん
2010/03/12(金) 21:26:480627デフォルトの名無しさん
2010/03/12(金) 21:52:320628デフォルトの名無しさん
2010/03/13(土) 10:13:55すみません、調べてみたけど解りません。プロジェクトプロパディのリンクのことでしょうか?
0629デフォルトの名無しさん
2010/03/13(土) 18:16:35そしてDEFファイル渡せ
0630デフォルトの名無しさん
2010/03/13(土) 22:30:34タスクマネージャの画面のように、メニューバーの下に一本セパレーターを
表示するにはどうすれば良いでしょうか?
ツールボックスにそれらしいコントロールが見当たらないのですが…。
0631デフォルトの名無しさん
2010/03/13(土) 22:42:360632デフォルトの名無しさん
2010/03/13(土) 23:11:140634デフォルトの名無しさん
2010/03/14(日) 11:20:35http://www.atmarkit.co.jp/fdotnet/dotnettips/310linecontrol/linecontrol.html
そのまま流用できるとおもうよ。
0635デフォルトの名無しさん
2010/03/14(日) 11:29:100636630
2010/03/14(日) 12:09:37>>635
Static Text の Height を 1 に、Static Edge を True にすることで実現できました。
ありがとうございました。
0637デフォルトの名無しさん
2010/03/14(日) 14:37:26関連付けはされないんでしょうか。 VC++側での設定って必要ですか?
0638デフォルトの名無しさん
2010/03/14(日) 16:11:17引用するけど、
○DLLを使う側
.DEFファイルを使う場合であっても、特に呼び出し側に変化はありません。.DEFファイルは、DLLを作るときに 必要なだけであり、呼び出し側には不要です。
0639デフォルトの名無しさん
2010/03/14(日) 16:26:06func@4とかの関数名になる。
_func という名前にするためにdef使う。
0640デフォルトの名無しさん
2010/03/14(日) 16:27:040641デフォルトの名無しさん
2010/03/14(日) 16:34:20Visual C++
DLL からのエクスポート
更新 : 2007 年 11 月
DLL から関数をエクスポートする方法には、次の 2 つがあります。
・モジュール定義 (.def) ファイルを作成し、DLL をビルドするときに .def ファイルを使用します。
名前ではなく序数で DLL から関数をエクスポートする場合は、この方法を使用します。
・関数の定義に __declspec(dllexport) キーワードを使用します。
上のどちらかの方法を使って関数をエクスポートする場合は、必ず __stdcall の呼び出し規約を使います。
0642623
2010/03/14(日) 17:32:22Add 自作した関数 add は表示され、DllRegisterServer()等のDll系の関数は表示されませんでした。
C:\WINDOWS\system32にあるDLLを適当に見たところDll系の関数が表示されます。
今の表記では駄目なんでしょうか?
Za.cpp
STDAPI DllRegisterServer(void)
Za.def
LIBRARY za
EXPORTS
DllCanUnloadNow PRIVATE
za.h
extern "C"
__declspec(dllexport) int add(int a)
0643デフォルトの名無しさん
2010/03/14(日) 18:02:00>DllCanUnloadNow PRIVATE
これしかないの?
プロジェクト作成のウィザードでATLプロジェクト選べば、
それとDllGetClassObject, DllRegisterServer, DllUnregisterServerの4つが並ぶはず。
って、ATLじゃなくて素でCOMするの?すごいなぁ。
0644デフォルトの名無しさん
2010/03/14(日) 18:13:57誤表記+省略してました。defのExport4つです。
DllCanUnloadNow PRIVATE
DllGetClassObject PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE
関数の中身の記述もプログラムの構成も合ってるか不明で、良い方法が思いつかないだけです。
ATLも初耳ですので調べてみます。
0645デフォルトの名無しさん
2010/03/14(日) 20:23:370646デフォルトの名無しさん
2010/03/14(日) 22:09:40UCHARの配列に入った文字列をTextbox->Textに表示したいのですが、
一文字ずつ取り出すしか無いのでしょうか?
0647デフォルトの名無しさん
2010/03/14(日) 22:44:050648デフォルトの名無しさん
2010/03/14(日) 22:58:38UCHAR moji[8];
Textbox->Text = "Moji:" + moji;
では、エラーになってしまいますので・・・。
0649デフォルトの名無しさん
2010/03/14(日) 23:03:110650デフォルトの名無しさん
2010/03/14(日) 23:20:37TextBox->Text = std::string("Moji:") + moji;
'std::operator +' の宣言を確認してください。
error C2784: 'std::_String_const_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_const_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_const_iterator<_Elem,_Traits,_Alloc>)' :
テンプレート 引数を 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' に対して 'UCHAR [8]' から減少できませんでした
'std::operator +' の宣言を確認してください。
error C2784: 'std::reverse_iterator<_RanIt> std::operator +(_Diff,const std::reverse_iterator<_RanIt> &)' :
テンプレート 引数を 'const std::reverse_iterator<_RanIt> &' に対して 'UCHAR [8]' から減少できませんでした
'std::operator +' の宣言を確認してください。
error C2784: 'std::_Revranit<_RanIt,_Base> std::operator +(_Diff,const std::_Revranit<_RanIt,_Base> &)' : テンプレート 引数を 'const std::_Revranit<_RanIt,_Base> &' に対して 'UCHAR [8]' から減少できませんでした
'std::operator +' の宣言を確認してください。
error C2676: 二項演算子 '+' : 'std::basic_string<_Elem,_Traits,_Ax>' は、この演算子または定義済の演算子に適切な型への変換の定義を行いません。(新しい動作; ヘルプを参照)
ダメでした・・・。
0651デフォルトの名無しさん
2010/03/14(日) 23:30:59Textbox->Text = moji;
しきりなおり、これでエラー貼ってみろ。
0652デフォルトの名無しさん
2010/03/14(日) 23:38:22理由: 'UCHAR *' から 'System::String ^' へは変換できません。
使用可能なユーザー定義された変換演算子がない、または
アンマネージ型をマネージ型に変換できません。
こうなりました。
0653651
2010/03/14(日) 23:42:54unsigned char u_a[] = "わーるど";
// TCHAR w_a[] = L"わーるど";
wchar_t w_a[] = L"わーるど";
String^ s_a = gcnew String(w_a);
label1->Text = u_a;
label1->Text = gcnew String(w_a);
}
答えになってるかどうか分からないけど、参考まで。
0654デフォルトの名無しさん
2010/03/15(月) 00:03:52とか?
0655デフォルトの名無しさん
2010/03/15(月) 00:05:30private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
unsigned char u_a[] = "わーるど";
label1->Text = u_a;
}
error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : 1 番目の引数を 'unsigned char [9]' から 'System::String ^' に変換できません。(新しい機能 ; ヘルプを参照)
1> 理由: 'unsigned char *' から 'System::String ^' へは変換できません。
1> 使用可能なユーザー定義された変換演算子がない、または
1> アンマネージ型をマネージ型に変換できません。
こうなってしまいます。
UCHARに入れた文字列を表示したりマネージ型に変換することは出来ないってことでしょうか?
0656デフォルトの名無しさん
2010/03/15(月) 00:06:43error C2664: 'System::String::String(const wchar_t *)' : 1 番目の引数を 'UCHAR [8]' から 'const wchar_t *' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
それもダメでした・・・。
0657651
2010/03/15(月) 00:07:070658デフォルトの名無しさん
2010/03/15(月) 00:36:050659デフォルトの名無しさん
2010/03/15(月) 00:54:00wchar_tを挟まないといけないのですね。
めんどくさっ。
UCHAR moji[8] = "mmmmm";
wchar_t w_m[8];
for(int i=0;i<8;i++){w_m[i]=(wchar_t)moji[i];}
Textbox->Text = gcnew System::String(w_m);
0660デフォルトの名無しさん
2010/03/15(月) 01:04:53unsigned char moji[8] = "mmmmm";
Textbox->Text = gcnew System::String((char*)moji);
0661デフォルトの名無しさん
2010/03/15(月) 01:12:37その書き方があったっ。
文字列型が多くて混乱してました。
ありがとうございます。
0662651
2010/03/15(月) 02:40:41String(signed char*)はあるのにString(char*)が無いよ。
0663デフォルトの名無しさん
2010/03/15(月) 08:23:18あえてC++/CLIやる意味ないだろ
0664デフォルトの名無しさん
2010/03/15(月) 08:24:300665デフォルトの名無しさん
2010/03/15(月) 10:15:52ありがとうございます、プロジェクトプロパディ→リンカのモジュール定義ファイルで解決しました。
基本的なこともできてなかった…
0666デフォルトの名無しさん
2010/03/15(月) 18:57:15非クライアント領域でのクリックの座標から色を知りたいのですが、
非クライアント領域のクリックのメッセージを知る方法が分からずに躓いています。
クリックは非クライアント領域で2回連続で押し、それぞれの座標を知りたいです。
WM_NCLButtonDownだとタイトルバーの座標までは分かっても、ウィンドウの外だと
反応してくれませんでした。また、一度ウィンドウが非アクティブになると拾ってくれないようで
他の方法を考えています。
現在は非クライアント領域をクリックしたときに送られる何らかのメッセージを受けたとき、
sendmessageでWM_LBUTTONDOWNを送る方法を考えています。
単純に非クライアント領域を何度かクリックした座標を受け取る方法は
やはりないのでしょうか?
0667デフォルトの名無しさん
2010/03/15(月) 21:41:23オーディオインタフェースの電源入れておかないとダメなのね
0668デフォルトの名無しさん
2010/03/15(月) 22:09:32あります。
0669デフォルトの名無しさん
2010/03/15(月) 22:28:27ありがとうございます。お手数おかけして申し訳ありませんが、
できたら使う関数名やメッセージ名など教えていただけると幸いです。
お願いします。
0670デフォルトの名無しさん
2010/03/15(月) 23:08:50どうも質問の内容がおかしい気がする
ウィンドウの外でその用途ならキャプチャするとか
0671デフォルトの名無しさん
2010/03/16(火) 03:36:39マウスキャプチャかフックかな
キャプチャならSetCapture〜ReleaseCapture
フックならSetWindowsHookExでWH_MOUSE
DLLにしたくないならWH_MOUSE_LLで
0672デフォルトの名無しさん
2010/03/16(火) 07:49:520673デフォルトの名無しさん
2010/03/16(火) 10:58:41すみません、ウィンドウの外のつもりでした。
これは最初に書くべきだったかもしれませんが、キャプチャは
一度他のウィンドウをクリックしたりしてアクティブなウィンドウが移ると
キャプチャが働かなくなると読んだので、それ以外の方法で探していました。
>>671
フックというのを少し調べてみました。まだ把握はできていませんが、
これならなんとかなるかもしれないです。しばらくこれで調べてみます。
ありがとうございました。
0674デフォルトの名無しさん
2010/03/16(火) 11:12:540675デフォルトの名無しさん
2010/03/16(火) 11:24:24指定したセルにだけ入力したいのですがどこを直せばいいか分かりません。
Sub Input_Date(ByVal iDay As String)
ActiveCell.Value = CStr(iYear) _
& "/" & CStr(SpinButton1.Value) & "/" + iDay
ActiveCell.NumberFormatLocal = ComboBox1.Value
End Sub
どうすれば良いのでしょうか?
0676デフォルトの名無しさん
2010/03/16(火) 11:26:48すみません、一応そういうつもりではなかったんです。
気を悪くされたら申し訳ありません。
一応僕としては>>666のほうで4行目や終わりの段落で
連続で何度かクリックして座標を受け取る方法、ということで質問したつもりでいたので
話の流れが悪くなってしまいどのようにレスを書くか迷って
あのような書き方になってしまいました。
どうせ長文になるのなら、質問項目とすでに試したことを箇条書きなどとして
分かりやすく記述するべきであったかと思います。
決して内容を小出しにして居座るつもりではありませんでした。
お気を悪くしてしまい申し訳ありませんでした。
0677デフォルトの名無しさん
2010/03/16(火) 11:30:49EXCELだったらVBAでも勉強すればいいんじゃないか
0678GV
2010/03/16(火) 11:39:54VisualBasicをやってます。
でも、そろそろ他も勉強したいです。
C++かC#かJavaにしようとおもいますが、どれがいいですか?
皆様なりの見解を教えていただけますか?
それか、ほかにお勧めの言語があったらおしえてください。
0679デフォルトの名無しさん
2010/03/16(火) 11:41:570680GV
2010/03/16(火) 11:48:55VC++、VC#いれました。あとはJDKでs
0681デフォルトの名無しさん
2010/03/16(火) 12:47:20いくつかやってると基本的なとこはあまり変わらないことに気がつくと思うんで
とりあえずやりやすいやつから始めるといいと思うよ。
IDEの使いやすさとかVBやってたとこからいくとC#やってみるのがいいかもね
0682デフォルトの名無しさん
2010/03/16(火) 12:54:030683デフォルトの名無しさん
2010/03/16(火) 12:58:480684デフォルトの名無しさん
2010/03/16(火) 13:00:21ライバルが増えるのは良くない
0685デフォルトの名無しさん
2010/03/16(火) 13:06:06自分が頭良いと思うならC++で、
そうでないと思うなら
C#かJavaが良いと思うよ。
0686デフォルトの名無しさん
2010/03/16(火) 13:14:30文型ならc#,javaで
0687デフォルトの名無しさん
2010/03/16(火) 13:19:570688デフォルトの名無しさん
2010/03/17(水) 00:28:42こんなVC++オンリーのスレで聞かないほうがいいと思うのだけど。
0689デフォルトの名無しさん
2010/03/17(水) 11:03:27unko = 0;
}
と書くのと
unko() : unko(0) { }
と書くのにはどういう違いがあるの?
0690デフォルトの名無しさん
2010/03/17(水) 11:09:28unko::unko() : unko(0) {}
のことを言っておるのか
0691デフォルトの名無しさん
2010/03/17(水) 11:10:220692デフォルトの名無しさん
2010/03/17(水) 11:15:42unko(){
chinko = 0;
}
と書くのと
unko() : chinko( 0 ) { }
と書くのにはどういう違いがあるの?
0693デフォルトの名無しさん
2010/03/17(水) 11:16:150694デフォルトの名無しさん
2010/03/17(水) 11:18:57できれば1ファイル1枚でなくて、連続して出力したい(紙の無駄無くしたい(エコ)的な意味で)でヤンス
0695デフォルトの名無しさん
2010/03/17(水) 11:23:020696デフォルトの名無しさん
2010/03/17(水) 11:25:440697デフォルトの名無しさん
2010/03/17(水) 11:28:110698GV
2010/03/17(水) 11:29:41他の人が言うには頭いいらしいけど、
自分では思ってない。これはどうすればいいですか?
0699デフォルトの名無しさん
2010/03/17(水) 11:56:10人に聞く時点でC++は後回しがいいと思う
0700GV
2010/03/17(水) 13:10:54なるほど。
0701685
2010/03/17(水) 13:49:39じゃあ例えば
俺みたいにゲームはやり込むのが好き とか
微妙な小難しいルールが出て来るとwktkしてくるような
性格しているとかならC++で、
そうでないと思うなら
C#かJavaかなぁ。
0702デフォルトの名無しさん
2010/03/17(水) 16:01:26先ずは文法作法が最小限で何でも作れるcで簡単なゲーム作れば。
画像の描画、音の再生、ウィンドウの作成などが簡単なライブラリのSDL使ってさ。
ゲーム部分に注力しやすいし。
※勿論vc++エディタでな!
0703GV
2010/03/17(水) 17:29:420704デフォルトの名無しさん
2010/03/17(水) 20:51:49RAD開発可能でnativeコードを吐く(.NET Frameworkを要求しない)のってありますか。
言語は問いません。
0705デフォルトの名無しさん
2010/03/17(水) 20:53:190706デフォルトの名無しさん
2010/03/17(水) 23:06:53っえ?
VC++MFCはないのかしらん?
0707デフォルトの名無しさん
2010/03/17(水) 23:13:280708デフォルトの名無しさん
2010/03/18(木) 00:44:11でDCの座標を変換してたいのですが、これらのAPIをどこで呼び出すのが正しいのですか?
OnInitialUpdateで行っても無効のようです。
OnDrawで行うと期待している動作をするのですが、再描画の際に毎回これらのAPIを呼ぶのは
パフォーマンス的にどうかな?と思い質問してみました。
0709デフォルトの名無しさん
2010/03/18(木) 01:39:59あと、5秒ごとに自動的に画像を表示するプログラムって技術的に可能ですか? ボタンをおさなくても自動で動くようにしたいです。
0710デフォルトの名無しさん
2010/03/18(木) 01:47:50どうしてもC++でRADと言うならC++Builderだし
0711デフォルトの名無しさん
2010/03/18(木) 02:03:450712デフォルトの名無しさん
2010/03/18(木) 02:34:09VSの何を使ってるかくらい書いたほうがいいぞ
ここに来るくらいだからC++だろうけど、CLIかもしれんし
定期的に画像を表示するのは可能
0713デフォルトの名無しさん
2010/03/18(木) 09:49:42いろいろあるので、目的も書いた方がいいかも。
0714デフォルトの名無しさん
2010/03/18(木) 23:57:57ソフトを使うのにVisual C++ 2008 SP1 Redistributable Package (x86)をインストールしろと書いてあるので
検索したらVisual C++ 2008 SP1 Redistributable Package (x86)というのもありました
この場合はSP1だけを入れればいいんでしょうか?それとも両方入れるんでしょうか?
0715デフォルトの名無しさん
2010/03/19(金) 02:27:090716デフォルトの名無しさん
2010/03/19(金) 08:04:102005と、2008か
x64とx86の間違いだろう、たぶんw
0717デフォルトの名無しさん
2010/03/19(金) 11:27:520718デフォルトの名無しさん
2010/03/19(金) 11:46:000719デフォルトの名無しさん
2010/03/19(金) 12:41:490720714
2010/03/19(金) 20:15:18Win32 OpenSSLを使うのに、Visual C++ 2008 Redistributable Package (x86) を
入れろと書いてあるのですが、より新しいSP1も入れなくてもいいんでしょうか?
0721デフォルトの名無しさん
2010/03/19(金) 20:17:530722デフォルトの名無しさん
2010/03/19(金) 23:03:56クラス名に"^"は使えません。
0723714
2010/03/20(土) 02:01:04ありがとう
0724デフォルトの名無しさん
2010/03/20(土) 04:36:28フォントサイズを変更してないのにダイアログやボタンの大きさが変わって表示されてしまうんですが
これはVC側の設定に問題があるのでしょうか?
フォントは "MS Shell Dlg"でサイズを8に設定しています。
0725デフォルトの名無しさん
2010/03/20(土) 08:06:27VC側のフォントの設定が違うんじゃないの?
0726724
2010/03/20(土) 08:52:52プロジェクト作成しなおし、フォントを設定しなおしたところ両方で同じ表示にすることが出来ました。
やはりVC側の設定がうまく反映されていなかったみたいです。
有難うございました。
0727デフォルトの名無しさん
2010/03/20(土) 22:04:36ビルド時にマニフェストを埋め込んでいますとか出るが普通のデザインのままなんだが
0728デフォルトの名無しさん
2010/03/21(日) 01:06:35マニフェストがあればなんでもいいというわけではない。
ビジュアルスタイルを有効にするには、comctl32.dllのバージョン6を参照させる指定を行うことが必要。
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
0729デフォルトの名無しさん
2010/03/21(日) 01:07:54×クラス名 ○型名な。
マネージヒープに存在するオブジェクトを指すハンドルを意味する。
0730デフォルトの名無しさん
2010/03/21(日) 02:53:43typedef struct EXT_VECTOR
{
float e[3];
EXT_VECTOR(float x1, float x2, float x3)
{
__asm
{
mov ebx, e
fld x1
fstp [ebx]
fld x2
fstp [ebx + TYPE float]
fld x3
fstp [ebx + TYPE float * 2]
}
}
};
このような構造体のコンストラクタでebxにeのアドレスをロードしようとすると、
どういうわけかebxの値が0のまま変動しません。
thisポインタをロードすれば動くのですが、中身を変更したことを考えると得策ではないと思います。
何か回避する方法はあるのでしょうか?
0731デフォルトの名無しさん
2010/03/21(日) 09:08:420732デフォルトの名無しさん
2010/03/21(日) 09:34:21this経由じゃないとムリにきまってるだろ。
0733デフォルトの名無しさん
2010/03/21(日) 10:33:40最適化(/O2)を設定したときに、決めた行だけはそのままコンパイル(/O2の影響を受けない)とかできますか?
0734デフォルトの名無しさん
2010/03/21(日) 10:51:58c++のstructはclass
0735デフォルトの名無しさん
2010/03/21(日) 10:55:33ttp://okwave.jp/qa/q13447.html
0736デフォルトの名無しさん
2010/03/21(日) 11:00:06ありがとうございます!
0737デフォルトの名無しさん
2010/03/21(日) 12:38:36なぜですかね?
簡単に作れるから?
0738デフォルトの名無しさん
2010/03/21(日) 13:13:340739デフォルトの名無しさん
2010/03/21(日) 13:19:36MZ Sheetを参考に
http://www.geocities.jp/katayama_hirofumi_mz/mzsheet/
0740デフォルトの名無しさん
2010/03/21(日) 13:52:40OS標準のコントロールにないのに、VC#にある理由は?
0741デフォルトの名無しさん
2010/03/21(日) 13:58:220742デフォルトの名無しさん
2010/03/21(日) 14:01:420743デフォルトの名無しさん
2010/03/21(日) 14:39:38>>738のいうところの”OS標準”にないのに、.netにある理由は?
0744デフォルトの名無しさん
2010/03/21(日) 14:57:34VB.NET以前からあったしな
0745デフォルトの名無しさん
2010/03/21(日) 15:32:40int main()
{
int* p = int new;
return 0;
}
とすると、プログラムが終了した後もnewで確保された4バイト分のメモリ領域は
OSからみると、使っちゃいけない領域と思っているのですか?
プログラムが終了したら、そのプログラム内で確保された領域は
OSが自由に使えるとしたら、ギガバイト単位でメモリを搭載している最近のPCなら
特にこだわる必要がないように思えます。(まぁ、4バイトなら・・・)
0746デフォルトの名無しさん
2010/03/21(日) 15:33:34int *p = new int;
の間違いです
初心者スレだから勘弁してください
0747デフォルトの名無しさん
2010/03/21(日) 15:35:40プロセス終了時には、そのプロセスが使用したメモリはOSが解放します。
大きなプログラムを書くようになると、いつのまにかメモリ足りなくなったりして
どこでdeleteし忘れてるのか探すのにすごい労力かけたりするからね。
サービスとかデーモンみたいに終了しないプログラムもあるしな
0748デフォルトの名無しさん
2010/03/21(日) 15:59:28すみません。
他にどこで聞けばいいのかわからなかったです。
>>732
配列eにもアドレスがあるのにthisじゃないと通らないということは、
配列eにはアドレスがなくて、コンパイル時にアドレスを計算してるってことですか?
わかりません><
>>734
CとC++の仕様の問題ということですか?
0749デフォルトの名無しさん
2010/03/21(日) 17:10:42レスありがとうございます。
ってことは、deleteしなくても、そうそう問題はなさそうですよね
逆にdeleteしてはいけないところで、deleteしてしまっていて
そのポインタに値を書き込むほうが危険ですよね
0750デフォルトの名無しさん
2010/03/21(日) 17:13:32そんな心配をしなくちゃならないようなプログラムがdelete以外は完ぺき
とは思えないな。素直にちゃんとやるべきだし、スマートポインタというのもある。
0751デフォルトの名無しさん
2010/03/21(日) 17:27:540752デフォルトの名無しさん
2010/03/21(日) 17:44:18不安になるくらいなら、newは使うな。せめて、スマートポイントにしておけ。
できる限りSTLコンテナかローカルインスタンスで済ませ。
0753デフォルトの名無しさん
2010/03/21(日) 18:51:07こんなコはプログラミングしちゃダメ。
0754デフォルトの名無しさん
2010/03/21(日) 18:56:17> 逆にdeleteしてはいけないところで、deleteしてしまっていて
> そのポインタに値を書き込むほうが危険ですよね
ちょっと待てwwwww
そんな発想は勘弁
0755デフォルトの名無しさん
2010/03/21(日) 19:06:214バイト固定なんて状況しか頭に浮かばないんじゃ使い道ないだろ
0756デフォルトの名無しさん
2010/03/21(日) 19:08:49↓
どうやら二重deleteしてるっぽい
↓
でも、どうしてもデバッグできねえ
↓
逆に考えるんだ! delete しなければいい。
みたいな過程をたどって>>745みたいな考えになったとか。
0757デフォルトの名無しさん
2010/03/21(日) 22:23:420758デフォルトの名無しさん
2010/03/21(日) 22:25:55画面の中心から右上がりに描くためにはどうすればいいのですか?
0759デフォルトの名無しさん
2010/03/21(日) 22:35:49MoveToで中心を指定してから、LineToで良いんでないかい。
0760デフォルトの名無しさん
2010/03/21(日) 22:45:48SetMapMode()とか、SetWindowOrg()あたりをいじればいいんじゃね?
0761デフォルトの名無しさん
2010/03/21(日) 22:45:550762デフォルトの名無しさん
2010/03/21(日) 23:07:32回答できない初心者は黙ってろよ。
0763デフォルトの名無しさん
2010/03/21(日) 23:11:18回答できない初心者は黙ってろよ。
0764デフォルトの名無しさん
2010/03/21(日) 23:12:400765デフォルトの名無しさん
2010/03/21(日) 23:17:28ビシっと回答して、初心者どもを黙らせた例って見たこと
ないんで、ほとんど脳内上級者なんだろう。
0766デフォルトの名無しさん
2010/03/21(日) 23:18:34>>760で回答した。
0767デフォルトの名無しさん
2010/03/21(日) 23:25:47www
0768デフォルトの名無しさん
2010/03/21(日) 23:33:55方向性があってれば、こと細かく教える必要はないな。
ヒントだけで調べ切れなかったら、質問者がさらに質問すればいい。
0769デフォルトの名無しさん
2010/03/21(日) 23:41:460770デフォルトの名無しさん
2010/03/21(日) 23:43:39べつにこれでいいのか。
なんかぜんぜん違ってるのかと思ったよ。
0771デフォルトの名無しさん
2010/03/22(月) 01:02:38ダブルクリックをキャンセルするにはどうしたら良いのでしょうか?
System::Void axWindowsMediaPlayer1_DoubleClickEvent(System::Object^ sender, AxWMPLib::_WMPOCXEvents_DoubleClickEvent^ e) {
//全画面再生をキャンセル
}
VC++2008EEでWMPはVer.10等です。
0772デフォルトの名無しさん
2010/03/22(月) 01:48:530773デフォルトの名無しさん
2010/03/23(火) 17:03:21LPWSTR s;
wsprintf(s, L"n = %d", n);
SetWindowText(hwnd, (LPCTSTR)s);
bccだとchar *だけで済んだのに型にうるせーな
0774デフォルトの名無しさん
2010/03/23(火) 17:15:53sの領域は何処にあるの?
0775デフォルトの名無しさん
2010/03/23(火) 17:28:410776デフォルトの名無しさん
2010/03/23(火) 17:34:34LPCTSTRが「const char*」だった場合どーするんだ。
0777デフォルトの名無しさん
2010/03/23(火) 21:09:270778デフォルトの名無しさん
2010/03/23(火) 21:12:05まずはキャストで解決しようとするな、コンパイル通ればいいってもんじゃない。
とりあえずは、 TCHAR s[20]; にかえてみて
0779デフォルトの名無しさん
2010/03/24(水) 01:06:52wsprintf(s, TEXT("n = %d"), n); // または<stdio.h>と<tchar.h>をインクルードした上で_stprintf
SetWindowText(hwnd, s);
0780デフォルトの名無しさん
2010/03/24(水) 01:12:47wsprintfW(s, L"n = %d", n);
SetWindowTextW(hwnd, s);
で、いいだろ。
ジェネリックテキストとか、めんどうなだけでいいことなんにもないよ。
0781デフォルトの名無しさん
2010/03/24(水) 11:09:28言われたとおりにしかできないならまたはまるぜ
0782デフォルトの名無しさん
2010/03/24(水) 15:15:30ネコでもわかる〜Windows SDK編 を見つつプログラミングしています
日本語文字列を縦書きで描画する方法をご教示お願いします
DrawTextExのオプションにそれらしきものは見つかりませんでした
一文字ごと座標をY軸方向にずらしながら逐一描画するしかないのでしょうか
0783デフォルトの名無しさん
2010/03/24(水) 16:53:450784デフォルトの名無しさん
2010/03/24(水) 17:26:55それで>>783
0785デフォルトの名無しさん
2010/03/24(水) 22:56:54って同じもの?
0786デフォルトの名無しさん
2010/03/24(水) 23:00:180787デフォルトの名無しさん
2010/03/25(木) 02:08:51TEXT()はVisualがC++の時はKがついてそれ以外は付かない。
LはVisualだから
0788デフォルトの名無しさん
2010/03/25(木) 02:14:00このサイトのスケルトンプログラムでエラーを3つ吐きます
参考書を開いても一つとして解決出来ません・・・
Visual C++ 2008 Express Edition を使用しています
1>c:\documents and settings\ms\デスクトップ\test\test\test\winmain.cpp(50) : error C2143: 構文エラー : ';' が 'case' の前にありません。
1>c:\documents and settings\ms\デスクトップ\test\test\test\winmain.cpp(72) : error C2440: '=' : 'char [9]' から 'LPCWSTR' に変換できません。
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
1>c:\documents and settings\ms\デスクトップ\test\test\test\winmain.cpp(102) : error C2664: 'CreateWindowExW' : 1 番目の引数を 'const char [14]' から 'DWORD' に変換できません。(新しい機能 ; ヘルプを参照)
1> この変換が可能なコンテキストはありません。
0789デフォルトの名無しさん
2010/03/25(木) 02:26:49VIsual C++初心者なもので……
FreeTrain EX Av Projectのriorioです。
このたび正式版1.0をリリースし、それとともに次期版のベータ2.0.1.0も配布開始しました。
http://sourceforge.jp/projects/freetrain-exav/
1.0は問題ではなく、2.0.1.0のほうでご協力をお願いします。
ver2から、新たにC++/CLIで記述されたDirectXラッパーを作成して使用するようにしたの
ですが、どうもビルドに問題があるのかソースに問題があるのか、原因いまだ不明なのです
が、本来
・DirectX9.0c
・.NET 2.0
の2つさえ入っていれば動作するはずのFreeTrainEX Av本体が、単独動作せず起動すぐ
クラッシュということになっています。
いろいろ試してみて、Visual C++ 2008がExpress Editionでいいのでインストールされて
いたら動作する、というところまでは突き止めました。
私自身もExpress Editonで開発しているのでC++部分とC#部分の一発ソリューションという
のはできず、まずC++のDirectXWrapper.dllのみをC++でビルドし、そのあとでC#でDLLを
参照してビルドして完成という手順を踏んでいます。
この手順の中になにか不備があるのではと考えられるのですが、わかりません。
SourceForge.jpのほうには2.0.1.0のソースをSVNでコミットしてあります。
ソースから読んでわかる方、ぜひ解明・解決していただけないでしょうか。
0790デフォルトの名無しさん
2010/03/25(木) 04:28:16自己解決しました
SJISとUNICODEの問題でした
これは古いサイトを参考にするのは大変そうだ・・・
0791デフォルトの名無しさん
2010/03/25(木) 06:34:47ありがとうございます
縦書き文字を出力することができました
幾つかの試行錯誤とMSDNライブラリから
DrawTextは縦書き文字に未対応(改行後の文字送り方向が下方向固定)らしいですね
別の方法を探すことにします
ありがとうございました
0792デフォルトの名無しさん
2010/03/25(木) 07:09:16ライブラリと静的にリンクしてないとか
0793789
2010/03/25(木) 09:26:23このC++部分はほかの人に作ってもらって、うpろだ経由で受け渡ししたものなのですが。
その最初の作者のかたは最近来てくれなくて連絡とれないんです。
自分がC++初心者でビルドのオプションとかもよく分かってなくて。
可能ならSourceForgeで公開してるソースを手元のC++でビルドしてもらって
アドバイスいただけたらありがたいです。
0794デフォルトの名無しさん
2010/03/25(木) 10:18:38DirectXWrapper.dllがDebugビルドされてるので
Releaseでビルドし直すといいよ。
0795デフォルトの名無しさん
2010/03/25(木) 11:29:28うほ
そんなことで解決するとは。
ありがとうございますありがとうございます。
0796デフォルトの名無しさん
2010/03/26(金) 21:34:170797デフォルトの名無しさん
2010/03/26(金) 21:52:130798デフォルトの名無しさん
2010/03/26(金) 22:24:560799デフォルトの名無しさん
2010/03/26(金) 23:18:390800デフォルトの名無しさん
2010/03/27(土) 17:09:18~~~~~
どうしたらいいですか?
0801デフォルトの名無しさん
2010/03/27(土) 17:16:220802デフォルトの名無しさん
2010/03/27(土) 19:17:320803デフォルトの名無しさん
2010/03/28(日) 00:12:320804デフォルトの名無しさん
2010/03/28(日) 13:22:18taskschd.hをインクルードすると、
windef.h(154) : warning C4114: 同じ型の修飾子が 2 度以上使われています。
windef.h(154) : error C2632: 'char' と 'char' の 2 つの型指定子のあいだにコードがありません。
windef.h(154) : warning C4091: 'typedef ' : 変数が何も宣言されていないときは、'unsigned char' の左辺を無視します。
となります。
また、put_WakeToRunを使いたいのですが、具体的にはどう指定するのでしょうか?
put_WakeToRun( (タスク名) VARIANT_BOOL true); であってます?
0805デフォルトの名無しさん
2010/03/28(日) 13:32:090806デフォルトの名無しさん
2010/03/28(日) 19:24:34labelがたくさんあってfor文でlabel1→label2→label3→…と処理したいのですがどうすればいいですか?
for(i=0;i<…){
labeli->…;
}
では勿論だめですのでいい方法を教えてください
0807デフォルトの名無しさん
2010/03/28(日) 19:29:47Label[] labels = new Label[] {label1, label2, label2, …};
foreach (Label label in labels) {
label->…;
}
0808デフォルトの名無しさん
2010/03/29(月) 16:34:09って何?
0809デフォルトの名無しさん
2010/03/29(月) 16:39:050810デフォルトの名無しさん
2010/03/29(月) 16:55:200811デフォルトの名無しさん
2010/03/29(月) 16:59:270812デフォルトの名無しさん
2010/03/29(月) 17:56:44吐き気がする
0813デフォルトの名無しさん
2010/03/29(月) 18:10:56ここはc++の板だったな。
おもいっきりc#のコード書いてた。
スマソ。
0814デフォルトの名無しさん
2010/03/29(月) 21:54:32先にwindows.hをインクルードしていないと駄目とかでは?
0815デフォルトの名無しさん
2010/03/30(火) 09:15:19強烈ですね
面白そうなんで考えてみた。30分もかかったが
いわゆるC++屋って人なら1、2分程度でわかるのですか?
0816デフォルトの名無しさん
2010/03/30(火) 18:26:37実行するたびに残っちゃうからやるたびにタスクバーにたまってく
しかもこの状態だと正常にシャットダウンされないから強制終了させるしかないし
誰か同じようになってない?
0817デフォルトの名無しさん
2010/03/30(火) 20:32:510818デフォルトの名無しさん
2010/03/30(火) 21:09:110819デフォルトの名無しさん
2010/03/30(火) 21:42:27ウィンドウズアップデートとかの影響かとおもったけど他にいないなら
ウイルスもありえちゃうかな
0820デフォルトの名無しさん
2010/03/30(火) 22:30:33むしろウイルスなどのマルウェア説が自然だろそれは
0821デフォルトの名無しさん
2010/03/30(火) 22:35:310822デフォルトの名無しさん
2010/03/30(火) 23:18:12【板名】 プログラム技術
【スレ名】 ★初心者にVisual C++を教えるスレ★ Part35
【スレのURL】 http://pc12.2ch.net/test/read.cgi/tech/1256645713/
【名前欄】
【メール欄】
【本文】↓
ゲーム制作の途中です。ファイルの分割で困っています
ファイルが多くなり、includeが多くなってきたのでmain.hというヘッダファイルにまとめました
他にはcppファイルがいくつかあり、kozo.h(クラスファイルや構造体をまとめるヘッダファイル)があります
そしてそのmain.hを全ファイルでincludeすれば管理が楽かと思ったのですが
"public: __thiscall chara::chara(void)" (??0chara@@QAE@XZ) は既に main.obj で定義されています。
とエラーが出てしまいます
charaのコンストラクタが二重定義されてしまってエラーが出ていると思うのですが、なにか解決方法はありますか?
includeを細かく設定していくしかないのでしょうか
あともしよろしければファイル分割の王道みたいなページがあれば教えてください。よろしくお願いします。
0823デフォルトの名無しさん
2010/03/30(火) 23:18:55#include "kozo.h"
#include <string>
#include <windows.h>
extern int shujinkoX ;
kozo.hの内容
class chara{
private:
int str;
public:
chara();
};
chara::chara(){
str=0;
}
0825デフォルトの名無しさん
2010/03/30(火) 23:26:110826デフォルトの名無しさん
2010/03/30(火) 23:28:55おおおありがとうございますーーー!!!
0827デフォルトの名無しさん
2010/03/30(火) 23:41:000828デフォルトの名無しさん
2010/03/30(火) 23:44:12できれば避けたいです・・
今なら修正もできるといえばできるんですが、
これから先も増えていくと思うので、ヘッダファイルなどで一元処理したかったのです
コンパイルにかかる時間は諦めます
0829デフォルトの名無しさん
2010/03/30(火) 23:46:430830デフォルトの名無しさん
2010/03/30(火) 23:47:220831デフォルトの名無しさん
2010/03/31(水) 00:47:120832816
2010/03/31(水) 16:33:25Microsoftのフォーラムで見つけたけどいまいちわからない
0833デフォルトの名無しさん
2010/03/31(水) 16:49:45・書いたコードが間違っていてプロセスが残ってるだけ
・VSの再インスコ
・SP当ててみる
・OS再インスコ
0834デフォルトの名無しさん
2010/03/31(水) 17:17:300835デフォルトの名無しさん
2010/04/01(木) 14:58:340836デフォルトの名無しさん
2010/04/01(木) 15:15:23通常の入力にするには設定のどこを見れば良いでしょうか。
VisualC++2005
0837デフォルトの名無しさん
2010/04/01(木) 15:29:24なにを入力するときの話?
0838デフォルトの名無しさん
2010/04/01(木) 15:48:22静的リンクしてるCRTのバージョンの違いにより内部的に生成されたコードサイズが異なってしまったという認識でおkでしょうか?
コンパイラの最適化の違いもあるかと思いますが、基本的にCRTを動的リンクに変更すれば
exeサイズに大きな違いは出ないと考えてもよろしいでしょうか?
0839デフォルトの名無しさん
2010/04/01(木) 15:53:420840デフォルトの名無しさん
2010/04/01(木) 17:43:580841デフォルトの名無しさん
2010/04/01(木) 17:46:29メンバ関数内でCEditと入力すると最初のアルファベットがcとなってしまう。
0842デフォルトの名無しさん
2010/04/01(木) 18:02:15PC側の問題でした。
0843デフォルトの名無しさん
2010/04/01(木) 19:00:31お前は誰だ
0844デフォルトの名無しさん
2010/04/01(木) 19:09:440845デフォルトの名無しさん
2010/04/01(木) 22:46:55ビルド>>実行でいいですよね?
ファイル 編集 表示 プロジェクト ビルド デバック ツール ウィンドウ ヘルプって並んでて、
その下にファイルを開くとか保存のアイコンがありますが、実行がどれかわかりません
0846デフォルトの名無しさん
2010/04/01(木) 23:38:380847デフォルトの名無しさん
2010/04/01(木) 23:48:33たいていのIDEはメディアプレーヤーの再生ボタンと同じ三角じゃないかな
0848デフォルトの名無しさん
2010/04/01(木) 23:54:51実行はビルドのメニューやコマンドの分類の中にはない。デバッグの中にある。
デフォではツールバーは「標準」しか出てないんじゃないかな。
出し入れはメニュー・ツールバー上の右クリックでポップアップするメニューで。
「デバッグなしで開始」のアイコンは右向き三角形の左に三本横線がついたものになった。
デフォではデバッグのツールバーにのらなくなった。
追加は、上記右クリックメニュー→ユーザー設定(C)...→コマンド(C)から探し当てて
ツールバーにDrag&Dropで。
0849デフォルトの名無しさん
2010/04/02(金) 01:24:16そうしてみましたが、ダメでした。(状況不変)
0850デフォルトの名無しさん
2010/04/02(金) 08:11:14フックを呼び出したときDLLのエントリポイントに行ってくれず、インスタンスハンドルを取得できません。
呼び出し元のEXEからフックのハンドル取得して引数で渡したりすれば意図したことはできますが
どうみても何かおかしいと思うんですが、どうすればいいですか
0851デフォルトの名無しさん
2010/04/02(金) 09:08:32DllMainが呼ばれるのはLoadLibraryでdllを呼び出したときだろ?
dllのインスタンスハンドルが欲しいならDllMainの第一引数をグローバル変数で取っておけばいい
0852デフォルトの名無しさん
2010/04/02(金) 11:53:45情報を書き込まないと、的を射た答えは返ってこないと思われ。
0853デフォルトの名無しさん
2010/04/02(金) 12:46:11見つかりません。
どこに行けばダウンロードできますか?
msdnで2005版は見つかったのですが
0854デフォルトの名無しさん
2010/04/02(金) 15:46:53たとえば浮動小数点の四則演算を数百万回繰り返すだけのアプリの場合、マネージドでもネイティブでも
実行速度はそれほど変わらない?
0855デフォルトの名無しさん
2010/04/02(金) 17:58:54それって改悪じゃないの?
0856デフォルトの名無しさん
2010/04/03(土) 12:33:32友達がデーターベースとリンクさせるプログラムでも作って面接する会社に見せろっていってたんだが
それってアクセスとかオラクルっていうのつかうの?
0857デフォルトの名無しさん
2010/04/03(土) 13:44:120858デフォルトの名無しさん
2010/04/04(日) 02:19:430859デフォルトの名無しさん
2010/04/04(日) 03:03:36どこいってもだめだろうなぁ
0860デフォルトの名無しさん
2010/04/04(日) 03:34:190861デフォルトの名無しさん
2010/04/05(月) 23:07:52ボタンを貼り付けて、後はそのボタンを押した時の処理を
書けば、簡単なことならできる。
Visual C++ 2008 Express Edition インストール時に
SQL Server 2008 Express Edition をインストールするか
どうか選択できるから、データベースはとりあえず
SQL Server を使えばいいと思う。
でも、そんなことを聞いてるレベルで、自分が得意でないことを
「できます」と言って入社するのも、どうかと思う。そんなに
その会社で働きたいの?
0862デフォルトの名無しさん
2010/04/06(火) 05:24:19実務経験0だと30社は雇ってくれないみたいだから、新しい技術か資格を
取るべきかな・・・と思いまして。
0863デフォルトの名無しさん
2010/04/06(火) 20:23:48その求人ってハローワークの求人かな? ハローワークの
求人って、(地域差はあるかもだけど)「経験あり」の求人って
多いですよねぇ。
仕事に必要なのは知識ではなくて、自分で考えて何かを
作り上げる力だと思う。
知らないことは必要になったらそのときに調べながら作る。
とりあえず、その友人の言うように、実際に何かを作ってみる
のがいいと思う。>>861 のは無料で利用できるから、いろいろ
やってみたらいいと思う。
0864デフォルトの名無しさん
2010/04/06(火) 20:46:340865デフォルトの名無しさん
2010/04/06(火) 22:55:00とりあえず自分で作ってみろ
ウダウダ言ってる暇あったら少しでも経験を積め
仮に入ったとしても自分で覚える癖つけておかないと続かないぞ
0866デフォルトの名無しさん
2010/04/09(金) 08:08:21関数を実行する方法は無いでしょうか?
char name[] = "func";
void func(){ printf("Hello"); }
//これでhelloが標準出力されるような方法
hoge(name);
よろしくお願いします。
0867デフォルトの名無しさん
2010/04/09(金) 09:17:160869デフォルトの名無しさん
2010/04/09(金) 10:05:00ttp://i.loveruby.net/ja/rhg/src-html/
ttp://i.loveruby.net/ja/rhg/book/name.html
ttp://i.loveruby.net/ja/rhg/book/class.html
ttp://i.loveruby.net/ja/rhg/book/method.html
ttp://i.loveruby.net/ja/rhg/
0871デフォルトの名無しさん
2010/04/09(金) 11:15:33わざわざ人が少ないVC初心者スレで質問してるわけだから何か特別な事情でもあるんだろ
0872デフォルトの名無しさん
2010/04/12(月) 16:26:41VC2008(元のプロジェクトは それ以前のVer.で作成)を使ってます。
新たに スタティックな
std::list<int> foo;
を追加したところ WinMainCRTStartup() 内で
ハンドルされてない例外
が発生するようになってしまいました。
list でなく vector なら 発生しないのですが、
どの辺から探っていけばよいのか ご教授願えませんか
よろしくお願いします。
0873デフォルトの名無しさん
2010/04/12(月) 16:31:52いわゆるヘッダやらlibやらのinclude先フォルダがそうなってるって感じ?
0874872
2010/04/12(月) 20:32:40開発機には VS2008 しかインストールしてなく、
includeパス、追加lib も 一通り調べてみたつもりなのですが…
プロジェクトの フレームワークが、 2.0 と 3.5 混在してるんですが
これって 大丈夫なんでしょうか??? (変更させかた判らないんだけど orz)
0875デフォルトの名無しさん
2010/04/14(水) 21:08:250876デフォルトの名無しさん
2010/04/14(水) 21:40:55int main(){
return fopen('hoge.dat', 'wb');
}
0877デフォルトの名無しさん
2010/04/14(水) 22:36:45シングルクォーテーションでいいのか?
0878デフォルトの名無しさん
2010/04/14(水) 22:57:46気になるんなら自分で試すか、続きはCスレででもやってくれ
0879デフォルトの名無しさん
2010/04/14(水) 23:00:30一目でネタだと判るかどうかが
初心者かどうかの分かれ目
と無理やりスレタイに沿ってみる
0880デフォルトの名無しさん
2010/04/14(水) 23:13:570881デフォルトの名無しさん
2010/04/15(木) 08:57:580882デフォルトの名無しさん
2010/04/15(木) 09:19:380883デフォルトの名無しさん
2010/04/15(木) 11:18:04世代交代始まったのか?
0884デフォルトの名無しさん
2010/04/15(木) 11:22:51#include <stdio.h> の行を取ってしまって
下だけにしたら動いた
int main(){
return fopen("gomi.dat", "wb");
}
0885デフォルトの名無しさん
2010/04/15(木) 12:14:42宣言されていない関数の戻り値の型はintとみなされる。
0886デフォルトの名無しさん
2010/04/15(木) 13:52:480887デフォルトの名無しさん
2010/04/15(木) 19:53:360888デフォルトの名無しさん
2010/04/15(木) 20:05:470889デフォルトの名無しさん
2010/04/15(木) 20:08:220890デフォルトの名無しさん
2010/04/18(日) 09:17:040891デフォルトの名無しさん
2010/04/18(日) 13:27:50MultiByteToWideChar()で。
0892デフォルトの名無しさん
2010/04/18(日) 20:03:12ダイアログボックスにチェックボックス付のCTreeCtrl を配置しています。
クリックした際に、適当な処理test()をしたいんですが、
OnNMClickTree1を抜けきらないと、チェック状態が変化しないようです。
よって、OnNMClickTree1の中で、SetCheckでクリック時の状態の反転を
セットしました。
すると、チェック状態にならないようです。
void CXXXXDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
test();
*pResult = 0;
}
test内でツリーアイテムの状態をみてるので、test前までにツリーの状態を更新
したいのですが、なにかいいアイデアありませんか?
0893デフォルトの名無しさん
2010/04/18(日) 21:10:010894デフォルトの名無しさん
2010/04/18(日) 21:22:15抜けてから、testでいいですけど、それだとtestを呼ぶためにもう1アクション
必要になりますよね
0895デフォルトの名無しさん
2010/04/18(日) 21:24:37例えば、エクスプローラだと、左側のツリー内のフォルダをクリックすると、
右側のリストが更新されますよね
0896デフォルトの名無しさん
2010/04/18(日) 21:35:08TVN_SELCHANGED時にリストを更新してるからね
0897デフォルトの名無しさん
2010/04/18(日) 21:41:300898デフォルトの名無しさん
2010/04/26(月) 19:46:41コントロールを配列で指定してText等のプロパティを改変するにはどの様にしたらいいのでしょうか?
例としてVBで話させて頂きますが、Label1〜Label10をデザイナで配置して、
For i = 1 To 10
ControlName = "Label" & i //Dim ControlName As String
Controls(ControlName).Text = "aaa"
Next i
という感じの処理をVC++でも行いたいのですが・・・。
イメージとしては
System::String^ ControlName;
for(i=1;i<=10;i++){
ControlName = "Label" +i
Controls(ControlName)->Text="aaa";
}
という感じかと思ったんですが、どうも上手く行かず・・・。
どなたかご教示頂けないでしょうか?
環境は、VC++2008ExpressでCLRのWindowsフォームアプリケーションとして作っています。
よろしくお願いします。
0899デフォルトの名無しさん
2010/04/26(月) 19:50:17あとC系言語ではカウンタ回すときはfor(i=1;i<=10;i++)ではなくfor(i=0;i<10;i++)が普通
0900デフォルトの名無しさん
2010/04/26(月) 20:13:19つまり、std::mapを使わないとダメ。
0901デフォルトの名無しさん
2010/04/26(月) 20:26:170902デフォルトの名無しさん
2010/04/26(月) 20:56:470903デフォルトの名無しさん
2010/04/26(月) 21:11:31しかし、今後を考えるとstd::mapも覚えておいた方がよさそうですね。
皆さんありがとうございました!
0904デフォルトの名無しさん
2010/04/26(月) 21:16:180905デフォルトの名無しさん
2010/04/26(月) 21:22:53Win32よりCLRの方が共通動作環境ということでいいのかと思ったのですが・・・。
.Net Frameworkって実はそんなに普及してないんですかね?
0906デフォルトの名無しさん
2010/04/26(月) 21:25:060907デフォルトの名無しさん
2010/04/26(月) 21:26:17そして.NETプログラミングを行ううえでは最悪の言語
0908デフォルトの名無しさん
2010/04/26(月) 21:38:51なぜC++
0909デフォルトの名無しさん
2010/04/26(月) 21:40:50ちょっと調べてみたら『「.netで使えるC++」ではありません。』との文章がすぐ見つかりましたが、まさにこの勘違いをしていました。
基本的にUNIX環境で開発しているので、この勘違いしたままUNIX環境でC++開発始めたら大変なことになってましたね・・・。
早めに気付かせていただいて助かりました・・・。
0910デフォルトの名無しさん
2010/04/26(月) 21:46:040911デフォルトの名無しさん
2010/04/26(月) 21:46:50申し訳ない、言い方が悪かったです。
開発は.Netじゃないんですが、『CLRで開発するのは実行環境も.Netインストールしてないと駄目だからやめた方がいい。』っていう話かと思って.Netの名前を挙げました。
というか、なんだか基本的な部分で勘違いしてる気もしてきましたが・・・
0912デフォルトの名無しさん
2010/04/26(月) 21:53:440913デフォルトの名無しさん
2010/04/26(月) 21:56:300914デフォルトの名無しさん
2010/04/26(月) 22:15:25個人的にはJavaやりたいんですが、Visual C++って部分は仕様として決定事項でして・・・。
0915デフォルトの名無しさん
2010/04/26(月) 22:20:28C++/CLIはまぁありかなーと思わんこともないが
そこそこレベルすら解ってないならC++を1からやって
Win32API方面に走るほうが結果的に早いかもしれぬ
0916デフォルトの名無しさん
2010/04/26(月) 22:42:42死ぬしかないな
まだC++/CLIならなんとかなるかもしれないがUNIXじゃどうしようもない
0917デフォルトの名無しさん
2010/04/26(月) 22:44:110918デフォルトの名無しさん
2010/04/26(月) 22:46:46熱狂的な支持もあるが。
0919デフォルトの名無しさん
2010/04/26(月) 23:02:470920デフォルトの名無しさん
2010/04/26(月) 23:07:020921デフォルトの名無しさん
2010/04/27(火) 00:30:380922デフォルトの名無しさん
2010/04/27(火) 17:52:090923デフォルトの名無しさん
2010/04/27(火) 19:59:59ウンコはウンコを生み出したヤツが片付けるべき。
さっさとMSもC++/CLIは無かった事にすべき。
ISOだったかその辺のところに仕様を一蹴されたんでしょ?
0924デフォルトの名無しさん
2010/04/29(木) 00:44:420925デフォルトの名無しさん
2010/04/29(木) 01:21:470926デフォルトの名無しさん
2010/04/29(木) 12:48:00調べてみたんですが、いまいち場所がわからなくて、
0927デフォルトの名無しさん
2010/04/29(木) 13:47:32どこにもみつからなかったら普通のexeと同じように実行するだけ
0928デフォルトの名無しさん
2010/04/29(木) 14:27:52> ネイティブ吐けない時点でC++を使うメリットってまったく無いな
??バカ??
0929デフォルトの名無しさん
2010/04/29(木) 20:29:17「ツール>設定>上級者設定」を選択すると「デバッグ>デバッグなしで開始」が表示されるようになる。
それかCtrl+F5。
0930デフォルトの名無しさん
2010/05/02(日) 13:15:12大枠できたのですが、起動しただけでメモリを8MBも消費しています。
メモリの消費量を抑えたいんですが、どのようなことから改造していけば
いいでしょうか?
指標をお願いします。
0931デフォルトの名無しさん
2010/05/02(日) 13:17:050932デフォルトの名無しさん
2010/05/02(日) 13:36:47順番に中身付け足していけばどこが原因かぐらいわかるだろ
0933デフォルトの名無しさん
2010/05/02(日) 13:47:38やってみないと分からない程度の浅はかな知識しかない人は
レス不要です
0934デフォルトの名無しさん
2010/05/02(日) 13:59:270935デフォルトの名無しさん
2010/05/02(日) 14:01:20GUI のアプリは、各ウィンドウにビットマップを持っているから、
ダイアログのサイズが、800x600 で、ダイアログのほぼ全面に
ボタンとかラベルとかを貼り付けていると仮定すると、さらに
800x600 くらいの大きさののビットマップを持っている状態
であるといえる。これらのビットマップを保持するためにメモリ
はどれくらい必要かというと、1ピクセルあたり24ビットとして、
大雑把に計算すると、
2 * 800 * 600 * 4 / 1024 / 1024 = 3.66MB
ほど必要になる。
0936デフォルトの名無しさん
2010/05/02(日) 14:09:37ウインドウサイズを変えてみてもメモリ使用量は変化なし
最小化したらメモリ使用量は激減
最小化から元に戻したら最小化する前の半分ぐらいになった。
0937デフォルトの名無しさん
2010/05/02(日) 14:12:52そうすると残りの4MB強程度のメモリはダイアログクラスにメンバ変数として追加した
からですかね?
0938デフォルトの名無しさん
2010/05/02(日) 14:15:32そうすると、>>935さんの理屈と矛盾するように思えますけど?
ダイアログはビットマップを持っていて、最低でもその分は消費する
と解釈できるのですが。
0939デフォルトの名無しさん
2010/05/02(日) 14:23:09だと思うんだけど、DDL とスタックはプロセスごとにメモリを消費するの?それとも
他のプロセスと同じメモリ領域を共有している?
0940デフォルトの名無しさん
2010/05/02(日) 14:23:29メモリ使用量は300KBぐらいしか増えないね
0941デフォルトの名無しさん
2010/05/02(日) 18:08:49> GUI のアプリは、各ウィンドウにビットマップを持っている
そもそもこれ本当なの?
0942デフォルトの名無しさん
2010/05/02(日) 18:32:17次スレからスレタイ変更願う
★初心者がVisual C++を教えるスレ★ Part〜
~~~
0943デフォルトの名無しさん
2010/05/02(日) 18:38:51今日のパソコンはたいてい1GB以上は積んでんだろ?
0944デフォルトの名無しさん
2010/05/02(日) 18:40:29なおかつその状態でVSから実行したいと考えています。
$(SolutionDir)Debug
$(SolutionDir)Release
$(SolutionDir)Project ←以前はここにDLLなんかを置いていた
普通に$(SolutionDir)Debug に実行ファイルを出している場合は、
プロジェクトが依存してるDLLや読み込むINIファイルを $(SolutionDir)Project に置くと
VSから実行したとききちんと読み込めているようです。
VSのプロジェクト設定を弄って 構成>全般>出力ディレクトリ を変更すると
D;\TESTに実行ファイルを出すことはできるのですが、この場合、
実行ファイルが置かれているはずのパスがおかしくなるようで、
LoadLibraryで明示的にDLLを読み込む所でプログラムが落ちます。
プロジェクト設定の 構成プロパティ>デバッグ>作業ディレクトリ あたりが怪しいかな?
と思って試しに書き換えたのですが、やっぱりDLLが見つからないようでLoadLibraryする所で落ちてしまいます。
できない事はないんじゃないかなと思いながらも自力ではさっぱりだったので、
どなたか思い当たることがあればお願いします。
0945デフォルトの名無しさん
2010/05/02(日) 18:55:030946デフォルトの名無しさん
2010/05/02(日) 19:37:34ttp://www.ne.jp/asahi/hishidama/home/tech/vcpp/setting.html
ここの一番下を参考にどうぞ
0947デフォルトの名無しさん
2010/05/03(月) 12:56:42に
set lib=d:\test
を書いて再起動
0948デフォルトの名無しさん
2010/05/03(月) 13:59:15を読み込み中にアクセス違反が発生しました。
と出力ウィンドウに出力されます。
なにをヒントに探せばいいのでしょうか?
0949デフォルトの名無しさん
2010/05/03(月) 14:19:48それはおそらく未初期化のポインタ使ってアクセスしてるんじゃないかな
mapファイルでも出して0x77d0f48f がどの関数なのか見てみたら
0950デフォルトの名無しさん
2010/05/03(月) 14:22:12そこで止まらない?
再試行ボタン押せば該当個所表示されないか?
0951デフォルトの名無しさん
2010/05/03(月) 14:50:01環境を書いていませんでした。 VC++2008MFCです。
>>949
mapファイルというのをはじめて聞きました。
ぐぐってみて、挑戦してみます。
確かにどのメソッド内から発生しているのかさえわかれば、追いやすいんですが・・・
>>950
止まりません。
0952デフォルトの名無しさん
2010/05/03(月) 15:01:08なら、デバッグ-例外-Win32 Exceptions でC0000005にチェック入れてみるとか。
強引にステップ実行しながら特定する手もある
0953デフォルトの名無しさん
2010/05/03(月) 15:42:27レスありがとうございます。
デバッガが停止しました。これで追っかけれそうです。
マップファイルを見ても、0x77d0f48f 0xC0000005 0x27044854
が見つからず、ググってました
0954デフォルトの名無しさん
2010/05/03(月) 17:08:17それが含まれるものを探すんだよ
でもデバッガあるならそれでいいじゃない
0955デフォルトの名無しさん
2010/05/03(月) 17:46:23ほぼ無いのでれば、ある事もあるんでしょう
その違いは?
0956デフォルトの名無しさん
2010/05/03(月) 18:18:31プログラムのある地点のアドレスだと関数の戦闘のアドレスしか書いてないんだから
途中のアドレスは書いてないよ
0957デフォルトの名無しさん
2010/05/03(月) 20:34:28どうせASLRでアドレスなんて変わりまくるようになる
0958デフォルトの名無しさん
2010/05/03(月) 23:03:43ダイアログにCListCtrlに貼り付けて、CListCtrlをオーナードローする場合
・ダイアログがWM_DRAWITEMを捕まえる
・CListCtrlを派生させて、DrawItemをオーバーライドする。
どちらが、正解ですか?
オーナードローとは所有者が描画するってことですよね
そうすると、上が正解だと思うんですが・・・
0959デフォルトの名無しさん
2010/05/04(火) 07:26:36下のリンク先のはちょっと古いMFCのドキュメントだが、内容的には今でも通用する。
これ読めば理解できるだろう。
特に最初の「メッセージ リフレクション (メッセージ返送) とは」の項な。
テクニカル ノート 62: Windows コントロールのメッセージ返送
http://msdn.microsoft.com/ja-jp/library/eeah46xd.aspx
0960デフォルトの名無しさん
2010/05/07(金) 13:09:50デバッグ時に出力ウィンドウに文字が出力されるプロジェクトとされないプロジェクトがある
違いはどこにあるんですか?
0961デフォルトの名無しさん
2010/05/07(金) 14:00:230962デフォルトの名無しさん
2010/05/07(金) 16:37:25#include "../include/GV.h"
これの..っていうのはなんですか?
どういう意味があるのでしょうか?
0963デフォルトの名無しさん
2010/05/07(金) 16:39:58一つ上階層のディレクトリの意味。
0964962
2010/05/07(金) 16:49:23sourceフォルダとincludeフォルダは同一フォルダ内(同一階層ですか?)
sourceフォルダ内にはmain.cppというソースファイルがある
main.cppに
#include "../include/GV.h"
と記述がある
includeフォルダ内にGV.hというヘッダファイルがある
main.cppの階層(sourceフォルダ内)からGV.hにアクセスするには
main.cppの階層から見て一つ上の階層である階層(sourceとincludeが存在する階層)
のincludeフォルダ内のGV.hファイルなので
"../include/GV.h"
となる。
0965デフォルトの名無しさん
2010/05/07(金) 21:37:38・ロケールを設定していない
・リリースビルド
0966デフォルトの名無しさん
2010/05/07(金) 21:58:46鋭いところに気づいてるな・・・
確かに、その辺をごっちゃにして、HPでえらそうに講釈垂れてる
恥ずかしい奴いるけどなw
オーナードローっていうのは上記が正解だよ
0967デフォルトの名無しさん
2010/05/07(金) 22:33:29CListCtrl::DrawItem
Called by the framework when a visual aspect of an owner-draw list view control changes.
厳密に言ったら絵の所有者は画家ではないのでは?
0968デフォルトの名無しさん
2010/05/07(金) 22:42:570969デフォルトの名無しさん
2010/05/07(金) 23:21:590970デフォルトの名無しさん
2010/05/07(金) 23:56:12派生クラス自身で描くのは、MFCでは自己描画と言ってる。
http://msdn.microsoft.com/ja-jp/library/bk2h3c6w(VS.80).aspx
0971デフォルトの名無しさん
2010/05/08(土) 18:15:16Debug、/MTbと/MDbはどう違うのですか?
Release、/MTと/MDはどう違うのですか?
0972デフォルトの名無しさん
2010/05/08(土) 18:44:430973デフォルトの名無しさん
2010/05/08(土) 23:16:07もう、MSはVC++を見捨ててるの?
0974デフォルトの名無しさん
2010/05/08(土) 23:21:04C++/CLIなら実際にはC#と同じだろ
まあC++/CLIは見捨てられましたが
0975デフォルトの名無しさん
2010/05/09(日) 09:14:48vcランタイムと静的にリンクするかどうかの違い
0976デフォルトの名無しさん
2010/05/09(日) 12:40:422010ではリソースエディタでリボンなどを置けるらしいよ。
0977デフォルトの名無しさん
2010/05/10(月) 17:17:040978デフォルトの名無しさん
2010/05/11(火) 00:13:43半角/全角キーを押しても反応がありません
どうすればいいのでしょうか?
0979デフォルトの名無しさん
2010/05/11(火) 00:17:00>1
--
この板はプログラムを作る人のための板です。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
0980デフォルトの名無しさん
2010/05/11(火) 00:18:38新版 明解C言語 入門編
0981デフォルトの名無しさん
2010/05/11(火) 11:27:570982デフォルトの名無しさん
2010/05/11(火) 11:30:47だってVC++っ
は全然ビジュアルじゃないから
0983デフォルトの名無しさん
2010/05/11(火) 11:56:450984デフォルトの名無しさん
2010/05/11(火) 12:58:19visual と付いているから貼り付けできるとは限らない。
0985デフォルトの名無しさん
2010/05/11(火) 13:02:37Visual Basic 1.0 1991年
オブジェクト指向の基本的な部分を実装。
Visual C++ 1.0 1993年
0986デフォルトの名無しさん
2010/05/11(火) 13:02:55てのはどう?
0987デフォルトの名無しさん
2010/05/11(火) 13:05:17だから
コーディングC++
0988デフォルトの名無しさん
2010/05/11(火) 13:06:01詳しいですね
0989デフォルトの名無しさん
2010/05/11(火) 13:19:03レス数が950を超えています。1000を超えると書き込みができなくなります。