★初心者にVisual C++ ..
562:デフォルトの名無しさん
09/01/03 21:23:14
warning C4731: 'Mul' : インライン アセンブラ コードにより変更されたフレーム ポインタ レジスタ 'ebp' です。
この警告をなくす方法を教えてください。もしくは気にしなくても良いのでしょうか?
MSに URLリンク(msdn.microsoft.com) 悪い例のサンプルがあるんですけど
対応方法が載ってません。
563:デフォルトの名無しさん
09/01/03 21:59:54
ようするにebp/espを書き換えなければ済む話。
警告無視で書き換えるなら、__asmを入るときの値を出るまでに復元しろということ。
564:デフォルトの名無しさん
09/01/03 23:47:30
警告0の正しい?コードを書こうかなと思ってコード書き直してるのですが、
ReadProcessMemory(ProcessHandle, reinterpret_cast<LPVOID>(ModuleAddress+data.offset.x), &x, 4, NULL);
こう書くとwarning C4312: 'reinterpret_cast' : 'DWORD' からより大きいサイズの 'LPVOID' へ変換します。
とでるのですが、正しい使い方はどうなるんでしょうか?
ModuleAddressとdata.offset.xはどちらもDWORDです。
565:デフォルトの名無しさん
09/01/04 00:12:20
それは、Win64だとvoid*も64ビットだから気を付けろという警告。
キャスト元をDWORDからULONG_PTRなんかにすればいい。
DWORDはWin64でも32ビットのままだが、ULONG_PTRはポインタと同じく64ビットになるという整数型。
566:デフォルトの名無しさん
09/01/04 01:17:12
Windows XP SP3 Visual Studio 2003 の話です
ソースAがメインのソースとして
ソースBとCが他にあるとします.
ある構造体の宣言をソースCでし,ソースAとBでその構造体を使いたいものとします.
そのときコンパイルすると
構造体の再定義というエラー
error LNK2005: "その構造体は 既に ****.obj で定義されています。
とでます.
どのように宣言すればよいでしょうか?
567:デフォルトの名無しさん
09/01/04 01:27:40
グローバル変数の実体は一つだけにして、他ソースからはexternで参照する。
568:デフォルトの名無しさん
09/01/04 01:29:39
コンパイルエラーが出るなんて糞質問はコード公開必須だボケが
569:566
09/01/04 01:31:04
すみません別ファイルへのリンクに
#include "ソースC.cpp"
とかいう変なことしてました.
570:デフォルトの名無しさん
09/01/04 10:03:30
>>564
プロジェクトのオプションに64bit互換のチェックの有無があるからoffにする。
571:562
09/01/04 11:48:44
>>563
ありがとう。
pushとpopをしておけば良いのですね。
572:デフォルトの名無しさん
09/01/04 12:50:31
Visual C++本体の扱い方を解説しているサイトはありますか?
コーディングはできるんですが、ソフトの機能を把握しておきたいのです
ちなみに2008です
573:デフォルトの名無しさん
09/01/04 14:13:05
>>572
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.ja/dv_vstoc/html/06ddebea-2c83-4a45-bb48-6264c797ed93.htm
574:デフォルトの名無しさん
09/01/04 22:13:13
exeのディレクトリにあるファイルは読み込めるのに
exeのディレクトリのフォルダのファイルは読み込もうとするとエラーが出ます。
何故ですか?
ifstream fin;
OK↓
fin.open("test.txt",ios_base::binary);
NG↓
fin.open("data/test.txt",ios_base::binary);
575:574
09/01/04 22:21:20
どうやらファイルを見つけていないようです。
576:574
09/01/04 22:40:00
単なるスペルミスでした。
577:デフォルトの名無しさん
09/01/05 22:18:38
動的に作成した画像ファイルを読み込むとエラーになるんですが
なんとかなりませんか?
578:デフォルトの名無しさん
09/01/05 22:23:39
エラーの内容から原因を推測して修正してください
579:デフォルトの名無しさん
09/01/06 01:29:38
short int からintへ,int からshort intへの代入で,
特に型変換を記述しないで実行したんだけど,エラーも出ずに普通に動いた.
これ放置してて問題ない?それともちゃんと型変換した方がいい?
580:デフォルトの名無しさん
09/01/06 01:31:05
コンパイラの警告レベルを高くしたらコンパイル時に文句言うんじゃね、と無責任に答える
581:デフォルトの名無しさん
09/01/06 01:31:58
その場合でもshort→intのように無条件に大きくなる方はそのままでも平気。
582:デフォルトの名無しさん
09/01/06 01:42:53
「const unsigned char *」 型とはどういう扱い方をするものですか?
_ismbslead、_ismbstrail関数を使って、文字列の中の2バイト文字を判別したいのですが・・・
int _ismbslead(
const unsigned char *str,
const unsigned char *current
);
この引数の渡し方の意味がわからないです。
CString型、もしくはこいつをコピーしたchar型の配列の各バイトをチェックするロジックを作りたいのですが、
第一、第二引数どちらについても、char*型で渡そうとすると「const unsigned char*に変換できません」というコンパイルエラーが。
この関数はどうやって使うモノなのか教えてください
583:デフォルトの名無しさん
09/01/06 01:43:13
ありがとう,とりあえずはshort int から int へはそのまま放置しときます.
584:デフォルトの名無しさん
09/01/06 10:21:57
>>582
キャスト
585:デフォルトの名無しさん
09/01/06 10:52:44
constというのは呼び出す関数の内部で値を書き換えないようにするものなので
この場合無視していい
char * を unsigned char *にキャストする
586:デフォルトの名無しさん
09/01/06 17:44:30
FileStreamとBinaryReaderを使って、Byte型の配列を、読み込んだファイルのデータ長に合わせて宣言したいです。
//入力ストリーム作成
FileStream^ fs = gcnew FileStream(fnp, FileMode::Open);
//バイナリリーダー作成
BinaryReader^ br = gcnew BinaryReader(fs);
//データ読み込み
int len = (int)fs->Length; //データ長
System::Byte data[len];
こうやると、C2057とC2466、C2133が出て、ファイルを読み込んでからByteの宣言は出来てないみたいなんですが、
どうすればファイルを読み込んだ後にByteの配列を宣言出来ますか?
587:デフォルトの名無しさん
09/01/06 19:08:36
>>586
array<System::Byte>^ data = gcnew array<System::Byte>(len);
もっとも、File::ReadAllBytesを使えば1発で済むぞ。
588:デフォルトの名無しさん
09/01/06 19:30:25
>>586
ありがとうございます。もうひと頑張りしてきます。
589:デフォルトの名無しさん
09/01/06 19:30:55
>>588
>>587に安価ミスした・・・orz
590:デフォルトの名無しさん
09/01/07 10:13:31
VC++でHashTab Shell Extensionみたいにプロパティをいじるようなソフトを作りたいんですが、何をすればいいかまったくわかりません。。
どなたかヘルプミーお願いします。
591:デフォルトの名無しさん
09/01/07 10:48:34
HashTab Shell Extensionは知らんけど、まさにShell Extensionで調べるのがいいんじゃ?
絞るならCOMもつけるといいかも
592:デフォルトの名無しさん
09/01/07 12:30:36
>>591
サンクス!
とりあえずとっかかりができました。これからいろいろ調べてみようと思います。
593:デフォルトの名無しさん
09/01/07 18:34:46
Stringに\nで改行とかって含めることできますか?
それかString以外の別の型使わなきゃだめですか?
テキストボックスに改行付きで変数で一括で突っ込みたいんですが・・・
594:デフォルトの名無しさん
09/01/07 18:55:30
>>593
Stringということは.NETか?
\r\n
595:デフォルトの名無しさん
09/01/07 19:47:07
.NETならEnvironment.NewLine、普通のC++ならエディットボックスはWindowsの\r\nで。
596:デフォルトの名無しさん
09/01/07 20:42:21
>>594,595
できました、ありがとうございます。
597:デフォルトの名無しさん
09/01/07 23:59:31
CImageで読み込んだ画像ファイルに直接直線を描画したいのですが、
何か方法はありませんでしょうか?
Visual Studio2008でプログラミングをしています。
598:デフォルトの名無しさん
09/01/08 00:39:42
LineTo( hDC, nEndX, nEndY);
599:597
09/01/08 01:12:20
画面上ではなく、Cimageの読み込んだ画像のピクセルを直接書き換えるように
直線を書き込みたいのですが、何か方法はないですか??
600:デフォルトの名無しさん
09/01/08 06:41:30
LineTo
601:デフォルトの名無しさん
09/01/08 08:08:14
>>597>>599
CImageにはGetDC/ReleaseDCメンバ関数がある。
602:デフォルトの名無しさん
09/01/09 19:10:49
2008の表示>ツールボックスの文字色はデフォが黒なんだけど見づらいので
どこをいじれば変えられますか?
603:デフォルトの名無しさん
09/01/09 22:33:29
初心者です教えてください
604:デフォルトの名無しさん
09/01/09 23:24:16
このソフトは初心者には扱えません。
605:デフォルトの名無しさん
09/01/11 09:13:26
Editにキーボードで入力するとEN_UPDATEが発生するんですけど
SetWindowTextで文字列を挿入するとEN_UPDATEイベントが発生しません。
どうすれば良いでしょうか?
606:デフォルトの名無しさん
09/01/11 09:23:58
オバマじゃだめなのか?
607:デフォルトの名無しさん
09/01/11 16:28:57
#include <iostream>
#include <string>
using namespace std;
void main(){
wcout<<L"test";
wcout<<L"うんこ";
getchar();
}
なぜかL"うんこ"が表示されません。
っていうか日本語が表示されないのですが
なんとかしてください。
608:デフォルトの名無しさん
09/01/11 16:31:09
ロケール
609:デフォルトの名無しさん
09/01/11 16:48:54
うぁありがとぉぉおおう
610:デフォルトの名無しさん
09/01/12 11:36:16
一度壊れたインテリセンス情報って復活できる?
ncbファイル消して開きなおしても、入力支援できない・・・
611:デフォルトの名無しさん
09/01/13 10:46:21
プログラムではなくて、機能の質問なんですが、
#endifと最後に打った瞬間、上記文(#endifから上)の文字が全て灰色に変わりました。
(#ifdefなら青くなる筈だが、灰色に…)
色付に戻したいです。どうすれば良いのでしょうか?
よろしくお願いします。
612:デフォルトの名無しさん
09/01/13 11:10:49
そりゃコンパイル条件から外れたからだろう
613:デフォルトの名無しさん
09/01/13 11:48:59
アウトラインとかは関係ないのでしょうか?
614:611
09/01/13 13:51:34
自己解決しました。
一番最初のプリプロセッサ命令のスペルミスしてた。
数時間格闘した結末はやはり呆気ないものだな…。
615:デフォルトの名無しさん
09/01/13 14:37:20
コンパイル条件から外れた、で意味わからなかったのかよ・・・
616:デフォルトの名無しさん
09/01/13 15:07:46
すんません。実行時にフォームのタイトルバーに文字を指定する方法を教えてください。。。
617:デフォルトの名無しさん
09/01/13 15:12:55
あ、すんません。visual c++ 2008です・・
618:デフォルトの名無しさん
09/01/13 15:23:06
あ、すんません。普通にText = "aaa";でいけました。ほんとすんません
619:デフォルトの名無しさん
09/01/13 15:27:11
ゆとり死ね
市ねじゃなくて死ね
620:デフォルトの名無しさん
09/01/13 15:39:18
CoInitializeで未解決のトークンとリンクエラーになるのですが何かlibを追加しなくてはダメですか?
621:デフォルトの名無しさん
09/01/13 15:57:13
ole32.lib だと思うが、普通はわざわざ指定しないけどな?
622:デフォルトの名無しさん
09/01/13 18:29:48
>>621
普通は指定しないですよね?
でもなぜかしれを追加したらリンク通りました・・・
ありがとうございます。
623:611
09/01/13 19:22:32
>>615
フフ、プログラミングでわからない事なんて、しょっちゅうよ…
624:デフォルトの名無しさん
09/01/15 01:15:15
・Visual C++2008 express
・開発環境・・WindowsVista
Debugモード、Releaseモード共にコンパイルは通ります。
Debugモードでデバッグ無しで実行は問題なく動作し、正常に終了します。
Releaseモードでデバッグ無しで実行した際には、途中でOSからのエラー、
----.exeは動作を終了しました。
問題が発生したため、プログラムが正しく動作しなくなりました。
というメッセージが出、途中で終了します。また、エラーが出るタイミングも
まちまちです。
これはどういう問題かと思われますか?タイミング問題でしょうか?
625:デフォルトの名無しさん
09/01/15 01:24:30
変数の初期化し忘れとかそういう方向で
626:デフォルトの名無しさん
09/01/15 08:00:10
Windows XP、Visual C++ 2003 でダイアログアプリを作っています。
アプリを一つだけ起動した状態は問題ないんですが、二つ以上起動すると
タスクバーのボタンがグループ化されたときに「(2) TODO: <ファイルの説明>」というような
表記になってしまいます。
このような文言らしきものがリソースの VS_VERSION_INFO にあったので
適当に編集してみたのですが、表記は変わりませんでした。
どうしたらタスクバーの表記が正しいものになるでしょうか?
627:624
09/01/15 09:05:56
>>625
やはり、考えられるのはそれぐらいになりますよね・・・
ありがとうございました
628:デフォルトの名無しさん
09/01/15 10:37:15
>>626
以下のレジストリから該当アプリを削除して再度実行する。
HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
629:デフォルトの名無しさん
09/01/15 10:56:59
基本クラスをCFormViewで作成したときに
これのウィンドウハンドルはm_hWndでしょうか?
630:デフォルトの名無しさん
09/01/15 17:56:35
GetSafeHwnd()使え。
631:デフォルトの名無しさん
09/01/15 18:57:02
メイクしたユーザの名前を実行ファイルに
文字列として埋め込むことって可能ですか?
632:デフォルトの名無しさん
09/01/15 19:04:25
可能
633:626
09/01/15 19:10:04
>>628
おおお 初回起動時の値をずっと保持しているのですね。
消して再実行したらきちんと編集した値に更新されました。
どうもありがとうございました。
634:631
09/01/15 19:20:38
>>632
どうすればできますか?
635:デフォルトの名無しさん
09/01/15 19:21:23
>>634
#define hoge "うんこタロウ"
636:631
09/01/15 19:29:40
>>635
それだと"うんこタロウ"以外がメイクした時にも
"うんこタロウ"と埋め込まれると思うのですが・・・
637:デフォルトの名無しさん
09/01/15 19:37:51
メイクする人が変われば名前変更しなさいよ
VCは自動でメイクした人の名前を認識できませんよ
638:631
09/01/15 19:43:49
>>637
やはり手動でしかできませんか・・・
ありがとうございます。
639:631
09/01/15 19:53:11
今思いついたのですが、
static const char NAME[NAME_LEN] ("HOGEHOGE");
と、ソースに埋め込んで、ビルド後のイベントで
実行ファイルをバイナリレベルで走査し、
指定文字列を発見したらGetUserName()を埋め込む
というのは危険すぎるでしょうか?
640:デフォルトの名無しさん
09/01/15 19:57:52
ビルド後のイベントって他環境でも強制できるの?
641:631
09/01/15 20:05:23
>>640
恐らく*.projあたりに埋め込まれているのだと思うので、
VCを使用している限り埋め込む実行ファイルと
プロジェクトを一対で持ちまわれば
可能になるのではないかな、と。
ただ、プログラムのコード中に(想定しているバッファ以外に)
走査対象文字列が出てきたらと考えると危険な香りが・・・
642:デフォルトの名無しさん
09/01/15 20:42:25
>>641
コンパイルオプションに環境変数 USERNAME を埋め込むのはどうか?
/D "HOGEHOGE_USERNAME=\"$(USERNAME)\""
コードでその文字列を確保
CString sUserName = _T(HOGEHOGE_USERNAME);
643:デフォルトの名無しさん
09/01/15 20:52:30
C言語の勉強として、GetWindowRect関数を利用してウィンドウシェードを作っているのですが、
OnGetMinMaxInfoで最小サイズを指定していると思われるウィンドウではどうしてもタイトルバー
だけにすることができません。
どうすればそのようなウィンドウでもタイトルバーだけにすることができるでしょうか。
Microsoft Visual C++ 2008 Express Edition DLLファイル(TTBaseのプラグイン)
644:631
09/01/15 20:53:40
>>642
できました。ありがとうございます。
645:デフォルトの名無しさん
09/01/16 22:47:03
新規作成で出てくるウィザードにあるプロジェクトの種類 CLR Win32 全般 ってどういう使い分けなんですか?
ロベールのC+;教室ってサイトでは Win32 コンソール アプリケーションを使ってやるみたいなんですけどどれがどう違うのか教えてください。
それと新規作成でファイルを選んだ場合に作成されるのがプロジェクトで作ったのと何が違うのかも・・・
VC++2008EEを使ってます
646:デフォルトの名無しさん
09/01/17 07:38:09
>>645
CLRは.NET frameworkを使ったプログラムでC#やVisualBasicで作るのと同じ中間言語にコンパイルされる
C++で使う利点は無いので最初からC#で書いたほうが楽
実行時にランタイムが必要だったり不便な点がある
Win32は普通のプログラムなのでこれで作れ
全般はコンパイラを別のにして開発環境だけ使うとかしてクロスコンパイルが出来る(メイクファイルプロジェクト)
647:デフォルトの名無しさん
09/01/17 16:58:59
すごく初歩的な質問かもしれませんが、1つのプロジェクトにa.cppとb.cppがある場合どのような順番でコンパイルされていくんですか?
648:デフォルトの名無しさん
09/01/17 17:26:00
プロジェクトファイルに書いてある順番
649:デフォルトの名無しさん
09/01/17 18:53:52
順番なんかどうでもいい
650:デフォルトの名無しさん
09/01/18 01:58:13
/MP使えばほぼ同時だな。
651:デフォルトの名無しさん
09/01/19 11:10:24
MFCでファイルオープンダイアログを出す方法を教えてください
652:デフォルトの名無しさん
09/01/19 11:30:17
CFileDialog dlg(TRUE);
if (dlg.DoModal() == IDOK)
{
MessageBox(dlg.GetFileName());
}
653:デフォルトの名無しさん
09/01/19 13:31:54
>>652
できましたありがとう
654:デフォルトの名無しさん
09/01/19 23:39:08
CM_Get_DevNode_Registry_Propertyのかわりに
SetupDiGetDeviceRegistryPropertyほうを使うのが良いらしいんですが、
どういう理由なんでしょうか?
655:デフォルトの名無しさん
09/01/20 11:40:37
MSDNにそう書いてあるから、じゃだめ?
656:デフォルトの名無しさん
09/01/20 23:21:50
今使っているのはVisual Studio 2005です。
人に出来上がったexeファイルを配布するときに
このアプリケーションの構成が正しくないため、 アプリケーションを開始できません
でした。
というエラーを起こさないようにプロジェクトのランタイムライブラリの設定を
マルチスレッドDLLからマルチスレッドに変えました。
そうしたら以下のような警告が出て、他にも外部シンボルが未解決ですというエラーが大量に出ました。
warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
人に配布するときに一番上のエラーが出なく、かつリンクが通るようにするにはどのようにすればいいのですか?
657:デフォルトの名無しさん
09/01/20 23:42:25
>>656
DebugビルドとReleaseビルドが混じってるとか
リビルドしてみるか、言われたとおり /NODEFAULTLIB:LIBCMT.lib を試してみる
658:デフォルトの名無しさん
09/01/21 09:08:20
>>656
元の構成に戻して、構成プロパティの全般ページの「MFCの使用」を
「スタティックライブラリでMFCを使用する」にする。
か、
元の構成に戻して、該当する方を渡す。
Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)
URLリンク(www.microsoft.com)
Microsoft Visual C++ 2005 再頒布可能パッケージ (x86)
URLリンク(www.microsoft.com)
659:656
09/01/21 14:59:38
ゲームを作ろうと思っているのですが、
他の人が作っているゲームや商業用のゲームは
再配布可能パッケージをインストールしなくても動いているのが気になります。
それはなぜなのでしょうか。
660:デフォルトの名無しさん
09/01/21 15:10:46
>>659
スタティックリンクかもしれないし、
MFCを使ってないかもしれないし、
VCじゃないかもしれないし、
付属のセットアップで全部インストールされるかもしれないし、
…
もういいですか?
661:デフォルトの名無しさん
09/01/21 15:11:21
全然満足できません
662:デフォルトの名無しさん
09/01/21 15:14:29
あぁもう面倒くさいな。
取り敢えず「スタティックライブラリでMFCを使用する」でどうなるかやってみろ。
663:デフォルトの名無しさん
09/01/21 15:17:55
面倒くさいならレスしないで下さいよ。ここは初心者スレなんだから。
664:デフォルトの名無しさん
09/01/21 15:20:03
他の人が作っているゲームや商業用のゲームとかいう認識レベルのやつに説明しても無駄
開発環境や使用ライブラリぐらい調べてから質問しろ
665:デフォルトの名無しさん
09/01/21 15:21:15
無駄ならレスしないで下さいよ。ここは初心者スレなんだから
666:デフォルトの名無しさん
09/01/21 15:27:31
初心者じゃなくて初心者以前だろ
667:デフォルトの名無しさん
09/01/21 15:28:56
知りもしないで文句だけたれてるクズがうざぃ
668:デフォルトの名無しさん
09/01/21 15:39:57
そのゲームと同じにしたかったら同じ環境で同じように作ればいい
669:デフォルトの名無しさん
09/01/21 15:44:28
その程度のレスなんていらないよぉ
670:デフォルトの名無しさん
09/01/21 16:11:57
Microsoft Visual C++ 2005 再頒布可能パッケージなんだから
Visual C++ 2005以外で作れば入れる必要ない
671:デフォルトの名無しさん
09/01/21 17:02:41
誰か>>643を…
672:デフォルトの名無しさん
09/01/21 17:16:41
>>671
ちょっと待て
673:デフォルトの名無しさん
09/01/21 17:51:52
と思われるウィンドウって他の人が出してるウインドウ?
サイズ変更のメッセージでサイズ調整したりするけど
他から勝手に余計なことされたらどうなるんだ?
674:デフォルトの名無しさん
09/01/21 17:55:57
余計な事は考えないで質問にだけ答えてくださいよ。
675:デフォルトの名無しさん
09/01/21 17:59:02
>>673
ウィンドウシェードが目的なので他のプログラムですね。
コマンドプロンプトなどだと中身が一行見えたり、GIMPだとほとんどウィンドウの中身が見えてしまっていて全く使えません。
もちろん手動でタイトルバーだけにしようと思っても(OnGetMinMaxInfoかなんかで)それ以上小さくならないですし。
676:デフォルトの名無しさん
09/01/21 18:48:54
ウィンドウシェードなんて聞いたことない
知ってるやつが来るまでおとなしく待ってればいいよ
677:デフォルトの名無しさん
09/01/21 19:37:30
>>676
MacやBlackboxなどにあるウィンドウをタイトルバーだけにする機能のことです。
678:デフォルトの名無しさん
09/01/21 19:44:19
explorer.exeを殺して最小化すればいい。
679:デフォルトの名無しさん
09/01/21 20:03:54
>>675
他のシェードツールでは問題なく動作するの?
それなら動かしつつSPYで見てみるとか
680:デフォルトの名無しさん
09/01/21 20:26:41
>>678
互換シェル使っていますのでexplorer.exeはファイラー以外使ってません。
でもシェルを切ればタイトルバーだけになりますね。あまりあれは好きではありませんが。
>>679
Stylerでできた気がするのですが諸事情で確認できません。
681:デフォルトの名無しさん
09/01/21 22:40:49
VS2008(VC9?)で、newしたときに、失敗したときに例外じゃなくてNULLを返させたいです。
でもnew(nothrow)みたいに、既存のソースのnewを一個一個置き換えるのはやなので、一発でなんか無いですか?
682:デフォルトの名無しさん
09/01/21 22:55:40
newを自作
683:デフォルトの名無しさん
09/01/21 22:59:59
なんか方法があるのは憶えてるけど、どうやるかは忘れたな。
ググればでてくるんじゃないか?
684:デフォルトの名無しさん
09/01/21 23:03:43
検索したらmsdnにヒットしたけどオフィシャルとは思えない笑える説明
685:デフォルトの名無しさん
09/01/21 23:08:01
笑える部分をコピペしてやりたいけど、それやると検索で見つかってしまうからやめておこう
686:デフォルトの名無しさん
09/01/21 23:09:37
ダウンロードしたMSDNライブラリを、たとえばfirefoxで閲覧するにはどうすればよいでしょうか
687:デフォルトの名無しさん
09/01/21 23:49:00
>>682-685
えー
教えてください
688:デフォルトの名無しさん
09/01/22 00:24:09
もしかしてnothrownew.objをリンクするってやつ?
689:デフォルトの名無しさん
09/01/22 14:29:19
WindowsのAPI関数をさしてF1キーなどでドキュメント付属のリファレンス見れますけど、
英語のものばっかり表示されるんですが、日本語で表示するにはどうすればいいですか?
オプションで全部日本語を設定してるんですが・・・
690:デフォルトの名無しさん
09/01/22 14:55:16
んな難しい英語使われてないやろ
691:デフォルトの名無しさん
09/01/22 15:00:09
なんで2ちゃんねらーって論点をずらすことばかりするの?
692:デフォルトの名無しさん
09/01/22 15:03:55
そりゃあたくさん人がいるからだよ
693:デフォルトの名無しさん
09/01/22 15:06:28
visual studio使ってる段階でクズだし基地外が好んで使うから
694:デフォルトの名無しさん
09/01/22 15:20:01
>>689
キーワードタブのフィルタ条件を「日本語ドキュメント」にする。
その状態は記憶されるので次からは日本語になる。
695:デフォルトの名無しさん
09/01/22 15:50:57
VC++6.0を使用しています。
メニューバーの項目を一つだけ右端に持って行きたいのですが可能でしょうか?
下のような感じで。
________________________________
|ファイル|編集|表示|___________________|ヘルプ|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
696:デフォルトの名無しさん
09/01/22 15:58:18
>>695
不可能
697:デフォルトの名無しさん
09/01/22 16:04:28
>>965
無理
698:デフォルトの名無しさん
09/01/22 16:05:12
>>696 >>697
感謝です。
699:デフォルトの名無しさん
09/01/22 16:07:43
>>695
リソースじゃなくて自分でメニューバーのウィンドー作れば可能
700:695
09/01/22 16:15:20
>>699
感謝です。
URLリンク(yokohama.cool.ne.jp)
メニューバーの作り方はここを参考に作れば大丈夫でしょうか?
701:デフォルトの名無しさん
09/01/24 21:59:52
Web制作の経験があるという理由だけで会社でVisual C++の担当になりました。
1から勉強しなければならないのですが、そもそもこのソフトで何ができるようになるのでしょうか?
上司に聞こうにも上手くはぐらかされるだけでストレスになっています。
例えばこういうものが作れるといった具体例があれば教えていただけないでしょうか?
702:デフォルトの名無しさん
09/01/24 22:09:40
この世に存在する自動的に制御されているものはほとんど作れます
703:デフォルトの名無しさん
09/01/24 22:17:49
これはさすがに釣りだろjk
704:デフォルトの名無しさん
09/01/24 22:59:02
>>701
ウインドウズのアプリケーション。
ライブラリ。
DLL。
COM。
ActiveX。
Webアプリケーション。
705:デフォルトの名無しさん
09/01/25 04:26:10
工具箱で何が作れるのか聞いてるようなもんだな。
706:デフォルトの名無しさん
09/01/25 13:11:32
>>701
VCはなんでも作れるらから安心しろ。
707:デフォルトの名無しさん
09/01/25 13:30:49
最初、ヴァーチャルストゥディオって読んでました
708:デフォルトの名無しさん
09/01/25 13:38:02
VirtualStdioか
意味は通らなくもない
709:デフォルトの名無しさん
09/01/25 16:33:42
VisualC++2005EEとVisualC++2008EEの違いって何ですか?
教えてください。
710:デフォルトの名無しさん
09/01/25 16:40:52
VisualC++2008EEのほうが全てに秀でる あと軽い
711:デフォルトの名無しさん
09/01/25 16:49:55
ありがとうございました。
2008インストールしてみます。
712:デフォルトの名無しさん
09/01/25 19:45:42
>>701
会社の業務に関係するシステムを作らされそうなの?
たぶんC#とかVBでやったほうがいいとおもうけど。
713:デフォルトの名無しさん
09/01/26 23:16:58
ダイアログベースアプリで、ウイザードが生成するコードで、
CXXXDlg::OnPaint()
{
if(IsIconic())
{
処理
って奴あるじゃん。
あのIsIconicのときの処理って走りますか?
何時走るの??
ちなみにモーダルやモードレスの子ダイアログの場合、最小化すると走るらしいけど、
メインウインドの場合は?
714:デフォルトの名無しさん
09/01/26 23:28:03
>>713
MSDNには最小化したら0以外が返るって書いてあるけど、
ダイアログ以外のウインドウだと動作が違うの?
715:デフォルトの名無しさん
09/01/26 23:30:19
そもそも最小化しているときにOnPaintが呼ばれるのか?ということだろ。俺も気になる。
716:デフォルトの名無しさん
09/01/26 23:41:09
てか、最近のVCのウィザードはif(IsIconic())なんてコードを吐くの?
717:デフォルトの名無しさん
09/01/26 23:41:21
int main(void)
{
int a=0, b=99;
Exchange(a,b);
printf("a=%d ,b=%d\n",a,b);
}
int Exchange(int t1, int t2){
int tmp = t2;
t2 = t1;
t1 = tmp;
return t1,t2;
}
上の文では戻り値が返されずa=0,b=90と言う結果が出てしまいます。
どんな時に戻り値が適用され、どんな場合に仮引数、実引数が使われるのかが分かりません。
もしかして2つの値は返されないのでしょうか?
また、これは値渡しと言うものなのでしょうか?
混乱しています。よろしくお願いします。
718:デフォルトの名無しさん
09/01/26 23:42:49
>>715
そうそう、そんな感じ。
ウィザードがわざわざ生成するくらいだから何とかすれば通るような。
でもブレイクポイント設定して何をやってもブレイクしないし。
719:デフォルトの名無しさん
09/01/26 23:45:16
>>717
煽るわけじゃなくて、マジ疑問なんだけど、どういうのを
手本にして勉強してるの?
ネットのサイトとか?
二つの値を返したいときはこうだな。
void Exchange(int* t1, int* t2){
int tmp = *t2;
*t2 = *t1;
*t1 = tmp;
}
int main(void)
{
int a=0, b=99;
Exchange(&a,&b);
printf("a=%d ,b=%d\n",a,b);
}
720:デフォルトの名無しさん
09/01/26 23:46:38
>>718
Win3.1時代の名残りかな?
そのころは、最小化するとタスクバーじゃなくて、アイコン化されてたし。
721:デフォルトの名無しさん
09/01/26 23:49:23
>>720
最小化なのかアイコン化なのかもちょっと気になる。。
このIsIconic()〜のソースってSDIとかなら分かる気がする。
たとえば、親ウインドの中の子ウインドを最小化すると、親画面の左下に小さくなって並ぶじゃん。
あのときに、親ウインドにWM_PAINTが発生すれば、子供にも回ってきて、
子供は自分で自分がアイコンで占有している部分を更新リージョンからくり抜くんでしょ。たぶん。
でもメインウインドのダイアログのOnPaintでIf(IsIconic())って成立するのかな。。
722:デフォルトの名無しさん
09/01/26 23:51:38
__int32と int型ってまったく同一に見られるんですか?
オーバーロードができないんですが。
723:デフォルトの名無しさん
09/01/26 23:54:21
>>721
その場合は、子ウィンドウからしたら、全領域が非クライアント領域のような気がするし、
第一、WS_CLIPCHILDRENを付ければ勝手にやってくれることのような気がする。
724:デフォルトの名無しさん
09/01/26 23:55:14
>>722
そういう仕様。
URLリンク(msdn.microsoft.com)
> ..., and __int32 is synonymous with type int.
なお、ここには載っていないけど、__int64もlong longと同じ。
725:722
09/01/26 23:56:48
すいません、リサーチ不足でした。
ありがとうございます。
726:デフォルトの名無しさん
09/01/26 23:57:18
>>723
ああ。。確かに。
いったいこのコードなんだろう。誰かご存知のかた、ご回答お待ちしてます。
727:デフォルトの名無しさん
09/01/26 23:58:59
>>719
いや、ポインタを使わずに返すには、こうしたらどうか?
……と、思って書いてみたんですけど…やっぱり無理ですよね。
サンクスです。
728:デフォルトの名無しさん
09/01/26 23:59:43
C++なら参照というものがあってだな……。
729:デフォルトの名無しさん
09/01/27 00:06:10
>>727
構造体を使えばできるけど、Cじゃあんまりやらないな。
struct pair {
int first, second;
};
struct pair swap(int a, int b)
{
struct pair c;
c.first = b;
c.second = a;
return c;
}
730:デフォルトの名無しさん
09/01/27 00:12:11
VC+++MFCってコントロール少なすぎじゃないですか?
どう見ても、VC#でやったほうが楽なのに、なんでVC++のほうがメジャーなんですか?
731:デフォルトの名無しさん
09/01/27 00:16:13
そりゃ単純にいままでVC++でやってきた連中からしたら
VC#なんか分からん事だらけだからじゃないの?
なんでVC++で簡単にテキストファイル開けたのに
C#でその方法をぐぐらなくっちゃいけないの?
そこまでして移行してご利益がいっぱいあるの?
MSは好都合かもしれないけど。そんなものみんないやなんです。
732:デフォルトの名無しさん
09/01/27 00:16:36
>>730
C#よりも10年近く先に登場した分、資産・ノウハウが貯まっているところが多い。
733:デフォルトの名無しさん
09/01/27 00:22:46
感覚的には、新規の案件はVCよりC#のほうが多いような気がしたけど、
求人サイトで、C++とC#で検索してみたら、まだC++のほうが多かったな。
734:デフォルトの名無しさん
09/01/27 00:24:43
C++と比較したの?それともVC++と比較したの?
C++だけだと、LinuxとかUnixとか組み込みとかあるよ。
735:デフォルトの名無しさん
09/01/27 00:25:27
C#でもWeb系ってたまにないか?
736:デフォルトの名無しさん
09/01/27 00:29:21
>>735
aspで、イントラ作ろうって案件だと、C#かVBだしな。
737:デフォルトの名無しさん
09/01/27 00:37:49
>>732
その割には使えるコントロールが全くないじゃないですか?
しかも、Viewって一つしかないし・・・
738:デフォルトの名無しさん
09/01/27 00:45:22
>>737
Viewは複数あるじゃん。
739:デフォルトの名無しさん
09/01/27 00:47:41
>>737
コントロールは増えてないってだけでしょ。
MSはVC向けにはわざとそういう便利なライブラリを出さないんだろうね。
おらおらおらおらおらおらおらおらおらおら!!!!!!
さっさとドットネットにいきやがれこんちくしょーーーーーー!!
ってことですね。
おっとつい興奮していつの間にかCapsLockがONになってた
740:デフォルトの名無しさん
09/01/27 00:49:02
>>729
遅スレだけれどmain関数の中を
int main(void)
{
struct pair pair1;
pair1.first = 0;
pair1.second = 90;
swap(pair1.first,pair1.second);
printf("first=%d,second=%d\n",pair1.first,pair1.second);
return 0;
}
と、書いてみた。
駄目だった…。ちょっと思考錯誤してきます。
741:デフォルトの名無しさん
09/01/27 00:51:47
>>739
90年代はActiveXの時代だった。
どっちかというと、VBで使うのが主流だったと思うけど。
742:デフォルトの名無しさん
09/01/27 00:52:33
>>740
pair = swap(1, 2);
743:デフォルトの名無しさん
09/01/27 00:55:12
>>741
ここで言っているコントロールってActiveXのことなん?
もしそうならVCでも使えるんじゃね?
744:デフォルトの名無しさん
09/01/27 01:10:28
>>742
サンクスです。構造体に入れるのを忘れるとは…お恥かしい。
面倒な質問だったと思いますが最後まで有難う御座います。
これでひのきのぼうを装備してスライムが倒せそうです。
745:デフォルトの名無しさん
09/01/27 02:32:06
>>743
使えるけど、たしか標準ではメニューに入っていないでしょ。
746:デフォルトの名無しさん
09/01/27 07:43:04
基本的にはWindows標準のものだけ扱うからね。
でも2008SP1でごっそり増えたじゃない、C#にもまだないようなのが。
まあこれらもWindowsに標準で組み込まれる予定だけど。
747:デフォルトの名無しさん
09/01/27 18:29:11
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{/*ウインドウクラス構造体の設定*/
HWND hDlgWnd;
//ダイアログボックスを表示します
hDlgWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgWndProc);
ShowWindow(hDlgWnd, SW_SHOW);
UpdateWindow(hDlgWnd);
//戻り値を返す
return 0;
}
このようにモードレスダイアログを表示する関数を宣言しているのですが、一瞬表示されてすぐに消えてしまいます。
どこがおかしいのでしょうか?
ここの記述がおかしいのかはわかりませんが、ご検討をお願いします。
748:デフォルトの名無しさん
09/01/27 18:39:15
>>747
モードレスダイアログは普通のウィンドウのようにメッセージループが必要。
749:デフォルトの名無しさん
09/01/27 18:43:08
UpdateWindow呼んだあとreturnしちゃってるからな。
750:デフォルトの名無しさん
09/01/27 19:46:16
747です。返信遅れてすみません。
では、WinMainの中に記述してはいけないということでしょうか?
今からいろいろやってみますが、かなりの初心者なので少しヒントを下さい。
お願いします!
751:デフォルトの名無しさん
09/01/27 19:58:16
>>750
メッセージループっていってんだから
メッセージループでググレよウンコ
752:デフォルトの名無しさん
09/01/27 20:15:28
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{ WNDCLASSEX wcex; //ウィンドウクラス構造体
HWND hDlgWnd;
MSG msg;
ghInst = hInstance;
/*ウィンドウクラス構造体を設定*/
//ダイアログボックスを表示します
hDlgWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgWndProc);
ShowWindow(hDlgWnd, SW_SHOW);
UpdateWindow(hDlgWnd);
while (GetMessage(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
//戻り値を返す
}
という風に書き直したらできました。しかし、このソースおかしいぞと思われたらレスください。
748,749,751さんどうもありがとうございました。
753:デフォルトの名無しさん
09/01/27 20:36:45
なんでageてんの?
754:デフォルトの名無しさん
09/01/27 22:23:39
VC#みたいな補完機能はないのでしょうか?
毎回Ctrl+Spaceするのはめんどくさいですしセミコロン打っても自動で文字間隔とかを調整してくれませんし不便で仕方ないです
補完でこのスレを抽出するとないと言われていますがそんな馬鹿なことはないですよね?
755:デフォルトの名無しさん
09/01/27 23:12:01
ない
756:デフォルトの名無しさん
09/01/28 00:07:12
VC++にはWPFがないのはなぜ?
もしかして、見放された?
757:デフォルトの名無しさん
09/01/28 00:20:17
お前はC++を何だと思ってるんだ
アーキテクチャ考えれば無いのは当たり前
758:デフォルトの名無しさん
09/01/28 00:38:43
>>755
そうですか・・・ありがとうございました
759:デフォルトの名無しさん
09/01/28 00:40:33
つまり.NETに移行するって事は標準の言語ではなく
マイクロソフトのツールを使わせる戦略なの。
マイクロソフトにとってオープンソースや標準というものは金儲けの邪魔なのだ。
もちろん自分が好き勝手に決められる標準なら大好きだ。
760:デフォルトの名無しさん
09/01/28 01:01:13
>>756
なんかのインタビューでC++はそういう用途のものじゃないから、って言っていた気がするが
見つけらんなかった。すまん。
761:デフォルトの名無しさん
09/01/28 02:19:59
>>759
マイクロソフトの戦略というのは確かだが、
何でもかんでも決め付けるはどうかと
762:デフォルトの名無しさん
09/01/28 10:09:07
>>739
MFCフューチャーパックなるものがリリースされて、
コントロールが10年ぶりくらいに刷新されたと聞いたけど、
あれ、どうなんだろう?
VS2003使いだから、導入したくても導入できない
763:デフォルトの名無しさん
09/01/28 13:24:19
VC++2005Standard Editionにはmicrosoft platform SDKは同梱されていますか?
764:デフォルトの名無しさん
09/01/28 13:40:56
>>763
されてるよ
765:デフォルトの名無しさん
09/01/28 13:45:18
>>764
ありがとうございます
766:デフォルトの名無しさん
09/01/28 15:23:17
>>763-765
>>763-765
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
767:デフォルトの名無しさん
09/01/28 15:29:21
>VC++2005Standard Editionにはmicrosoft platform SDKは同梱されていますか?
768:デフォルトの名無しさん
09/01/28 16:00:05
>>766
ExpressじゃなくてStandardの話をしている
769:デフォルトの名無しさん
09/01/28 16:45:30
>>762
あれはコントロールってレベルじゃない。
URLリンク(www.atmarkit.co.jp)
770:デフォルトの名無しさん
09/01/28 22:23:57
>>766
すごい赤っ恥だな 俺だったら軽く鬱になる
771:デフォルトの名無しさん
09/01/28 22:47:54
>>766みたいにオッチョコチョイの癖にカッコつけて言葉が少ない奴って
しょーもねー勘違いで、一人で変な方向に突っ走ってプロジェクトの火種くすぶらせるんだろーな。
772:デフォルトの名無しさん
09/01/29 10:47:04
江戸っ子なんだろうw
773:デフォルトの名無しさん
09/01/29 11:37:35
アプリケーション開始とともにモードレスダイアログを2つ起動させたいのですが、どのような記述をすればいいのかがわかりません。
インスタンスハンドルが2つ必要なのでしょうか?
さっぱり分からないのでお願いします
774:デフォルトの名無しさん
09/01/29 11:39:29
1個はできてるの?
ためしに、単にCreateDialogを2回呼んでみては。
775:デフォルトの名無しさん
09/01/29 12:07:05
1個は表示されてます。
hDlgWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgWndProc);
hDlg = hDlgWnd;
ShowWindow(hDlgWnd, SW_SHOW);
UpdateWindow(hDlgWnd);
while (GetMessage(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
ghInst = (HINSTANCE)GetWindowLong( hDlg , GWL_HINSTANCE ) ;
//ghInst = GetModuleHandle(NULL) ;
hDlgWnd2 = CreateDialog(ghInst, MAKEINTRESOURCE(IDD_DIALOG2),hDlg,(DLGPROC)DlgWndProc);
hDlg2 = hDlgWnd2;
ShowWindow(hDlgWnd2, SW_SHOW);
UpdateWindow(hDlgWnd2);
while (GetMessage(&msg2, NULL, 0, 0) > 0) {
TranslateMessage(&msg2);
DispatchMessage(&msg2);
}
return (int)msg.wParam;
}
このように記述しています
776:デフォルトの名無しさん
09/01/29 12:11:07
何でメッセージループが複数あるのさ。
同時ならループの前で2回作れ
777:デフォルトの名無しさん
09/01/29 12:16:40
メッセージループの何たるかを知らずにコピペでプログラムを作る人間か…
778:デフォルトの名無しさん
09/01/29 12:18:21
hDlgWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgWndProc);
hDlg = hDlgWnd;
ShowWindow(hDlgWnd, SW_SHOW);
UpdateWindow(hDlgWnd);
ghInst = (HINSTANCE)GetWindowLong( hDlg , GWL_HINSTANCE ) ;
hDlgWnd2 = CreateDialog(ghInst, MAKEINTRESOURCE(IDD_DIALOG2),hDlg,(DLGPROC)DlgWndProc);
hDlg2 = hDlgWnd2;
ShowWindow(hDlgWnd2, SW_SHOW);
UpdateWindow(hDlgWnd2);
while (GetMessage(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
//戻り値を返す
//return 0;
}
このように記述したらダイアログ2つともでました!
ですが、2つめのダイアログの表示が1つめのレイアウトとかぶってしまいました。色とか線が2つめのダイアログにも影響を与えています。
779:デフォルトの名無しさん
09/01/29 15:50:33
Webブラウザコントーロールのバージョンはいくつになるんですか?
自分のマシンにIE7が入っていればIEコンポーネントを埋め込んだアプリを起動したときIE7として起動するんですか?
780:778
09/01/29 16:00:51
解決しました。お答えくださったかたがたありがとうございました。
781:デフォルトの名無しさん
09/01/29 16:08:31
どうでもいいけど、GetMessageが0以外の値として-2以下を返すときってないの?
782:デフォルトの名無しさん
09/01/29 16:19:34
それより
警告 GetMessage 関数は、0 以外の値、0、-1 のいずれかを返します。したがって、次のようなコードは避けてください。
while (GetMessage(lpMsg, hWnd, 0, 0)) ...
と書いてるくせにVisual C++の自動作成されたやつはしっかりそうなっているという矛盾
783:デフォルトの名無しさん
09/01/29 21:26:06
long long型の数値を入力するときは、
VC++ではfgets→atollができないので、
scanfを使うしかないのでしょうか?
784:デフォルトの名無しさん
09/01/29 21:30:17
long long atoll(char *str){
long long result = 0;
int negative=0;
while (*str == ' ' || *str == '\t')
str++;
if (*str == '+')
str++;
else if (*str == '-') {
negative = 1;
str++;
}
while (*str >= '0' && *str <= '9') {
result = (result*10) - (*str++ - '0');
}
return negative ? result : -result;
}
785:デフォルトの名無しさん
09/01/29 21:30:56
>>784
ありがとうございます。
ぐへへへへ、これであんなことやこんなことができる。
786:デフォルトの名無しさん
09/01/29 21:33:25
_atoi64
787:デフォルトの名無しさん
09/01/29 21:36:17
>>785
何だか分からんが
とりあえず通報しておいた
788:デフォルトの名無しさん
09/01/29 21:56:38
なぜか負になる不思議!
789:デフォルトの名無しさん
09/01/30 00:46:27
すまん、ホリデーってなん曜日だったっけ?
790:デフォルトの名無しさん
09/01/30 01:24:22
給料日だよ
791:デフォルトの名無しさん
09/01/30 06:55:22
俺は毎日がホリデイ
792:デフォルトの名無しさん
09/01/31 04:49:26
CreateWindow()でNULLが返るのですが、どうやってデバッグすればよいですか?
(どの変数がおかしいのか、とか、、)
793:デフォルトの名無しさん
09/01/31 04:54:41
テンパってます。助けてぇ〜
794:デフォルトの名無しさん
09/01/31 05:01:11
CreateWindowにブレークポイント設定してそこまでの変数が
期待通りの値になっているか確認したら
うまいやり方は玄人が来るまで待て
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4353日前に更新/248 KB
担当:undef