マイクロソフト社のVC++を使用しているのですが、
数値計算を行うときに
Win32 console Applicationで新規作成をしたら、
作成するコンソールアプリケーションの種類で
(1)空のプロジェクト
(2)単純アプリケーション
(3)"Hello,World!"のアプリケーション
(4)MFCをサポートするアプリケーション
と4つの種類がありますが、
これはどう使い分けたらいいのでしょうか?
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

空のプロジェクト以外は幾つかのファイルやリソースが雛型として最初に作られるというだけで、使いわけるというよりも、(2)~(4)で実際に自動的に作られた部分を見て、受け入れるかどうかを判断するだけです。



私自身は(2)~(4)は使いません。余計なことはしないでねと思いながら(1)を選んでいます。

全然回答になってませんね。すいません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QWin32 Console Applicationで作った実行ファイルのアイコン変更

前に同じような質問をしましたがMFC AppWizardの変更の仕方ではなくWin32 Console Applicationで作成した実行ファイルのアイコンを変更したいのですがどうしたらいいでしょうか?
プロジェクトごとに違うということを知らなかったので、記述することができませんでした。
どうか教えてください。

Aベストアンサー

1.リソーススクリプト(.rc)をプロジェクトに新規追加
2.リソースにアイコンを追加。

IDは何でもかまいませんが、アイコンを複数作成した場合は一番小さいIDのものがexeのアイコンになります。

#ウィンドウの左上や、タスクバーに表示されるアイコンとは別物です。

QConsole Applicationをタスクトレイに常駐できますか?

タイトル通りの質問です。
あんまりそういうソフト見たこと無いので、もしかしたら
出来ないんじゃないかと思ったりもしています。
Console Applicationをタスクトレイに常駐できるのでしょうか?
以上よろしくお願いします。

Aベストアンサー

>ところで裏で常駐するコンソールアプリは、出来ればスタートアップで
>起動させたいのですが、起動後、タスクバーに表示させないように出来るでしょうか?

参考URLにはWindowsNT系では という限定付きで出来るような事が書いてあります。
この場合は、コンソールアプリケーションを制御するアプリケーション経由で
CreateProcess()を使って起動する必要がありますね。

参考URL:http://www.microsoft.com/japan/developer/winds/faq/faq.htm

QVC++2003でSDIのMFCアプリ作成中です。

アイコン上にファイルをドロップし、ファイルをオープンする動作を実装し、
正常系は動作確認できました。
しかし、ファイルに読み込み制限などをかけていた場合、こちらのエラー処理に入る前に
Windows内部エラー処理に入ってしまうようで、「○○へのアクセスは拒否されました」と
ダイアログが表示されます。
デバッグで見て云ったところ、ProcessShellCommand(cmdInfo)の内部でエラーが発生し、
強制的におちているようですが、具体的にどこのクラス、メソッドでエラーを受け取って
いるのでしょうか?
オーバーライドしてエラー処理を自分で実装したいと考えています。

Aベストアンサー

ドキュメントクラスのOnOpenDocumentの中で実行する GetFileがNULLを返した場合にそのMesseageBoxを表示しているようです

アプリ側のドキュメントクラスに OnOpenDocumentを作成しておいて

BOOL CXXXDocument::OnOpenDocument( LPCTSTR lpszPathName )
{
  CFileException fe;
  CFile* pFile = NULL;
  pFile = GetFile( lpszPathName, CFile::modeRead, &fe );
  if ( pFile ) {
    // 正常に開けたので CDocumentで開けるようにココでは閉じる
    pFile->Close();
  } else {
    // ここでエラー処理をする
    return FALSE;    
  }
  return CDocument::OnOpenDocument(lpszPathName );
}

といった具合でいいように思います

ドキュメントクラスのOnOpenDocumentの中で実行する GetFileがNULLを返した場合にそのMesseageBoxを表示しているようです

アプリ側のドキュメントクラスに OnOpenDocumentを作成しておいて

BOOL CXXXDocument::OnOpenDocument( LPCTSTR lpszPathName )
{
  CFileException fe;
  CFile* pFile = NULL;
  pFile = GetFile( lpszPathName, CFile::modeRead, &fe );
  if ( pFile ) {
    // 正常に開けたので CDocumentで開けるようにココでは閉じる
    pFile->Close();
  } else {
    //...続きを読む

QVC++6.0 で 16bit アプリケーションを作成する方法

こんにちは。表題の件について教えて下さい。
仕事で作成したプログラムを現場に配布していましたところ、
ほとんど、WindowsNT4.0WSだったのですが、
数台WindowsNT3.51WSのマシンが混じっていまして、
このままではプログラムを配布できません。
本来なら16bit対応のコンパイラを入手すべきなのですが
時間がない上にライセンスの問題もある(よう)ですので、
出来れば、この環境で16bitアプリケーションとして作成したいのですが、
いろいろ検索していますが、資料が見つかりません。
1.そもそもできるのでしょうか?
2.できるのでしたら、その方法もしくはそれに関する資料
について教えて下さい!!
難しい問題とは思いますがご存知でしたら教えて下さい。
よろしくお願いします。

Aベストアンサー

NT 3.51はりっぱな 32bitOSですので、
16bitアプリケーションにする意味はありません。
むしろ,問題がでるような・・。

結局はAPI等でサポートしている機能等の違いの問題になると思います。

使用している関数等をhelpで調べれば、NT3.51で使用可能なものはわかると思いますので,
それで可能な機能のみを使っての書き換えになると思います。


GUIを多用していたり、IEで拡張された機能を使っていると直す量がたいへんそうですが(^^;;

QHello,World が出力できません。 visual C++でのC言語で

#include<stdio.h>
void main()
{
printf("Hello,World!");
}

と入力しているのですが,

LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
D:\ゲーム作り\プログラム\Hello\Debug\Hello.exe : fatal error LNK1120: 外部参照 1 が未解決です。
ビルドログは "file://d:\ゲーム作り\プログラム\Hello\Debug\BuildLog.htm" に保存されました。
Hello - エラー 2、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

とこんな感じでできません・・

stdioファイルはおれないのでこのファイルがあるHelloってファイルにかえたところ,

#include<Hello.h>
void main()
{
printf("Hello,World!");
}

結果
d:\ゲーム作り\プログラム\hello\hello.cpp(1) : fatal error C1083: include ファイルを開けません。'Hello.h': No such file or directory
ビルドログは "file://d:\ゲーム作り\プログラム\Hello\Debug\BuildLog.htm" に保存されました。
Hello - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

けっきょくはできないんですが,エラー1つ減ってるんで・・

http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html

こちらを参考に設定を変更してから本のプログラムをくんでいるので,若干めちゃめちゃになってるかもしれません・・・

ちなみにstdio,Helloと変更したとこをDxLibにしてもstdioのときと変わりません。あとincludのとこに何も打たないでやると
void main()
{
printf("Hello,World!");
}

結果
d:\ゲーム作り\プログラム\hello\hello.cpp(3) : error C3861: 'printf': 識別子が見つかりませんでした
ビルドログは "file://d:\ゲーム作り\プログラム\Hello\Debug\BuildLog.htm" に保存されました。
Hello - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

今度は識別子です・・

できれば本に書いてあるとおりstdioでいきたいのですが,どうしたらいいでしょうか・・

お願いします・・・

何もすることがないのでできれば早めに教えていただきたいのですが・・

#include<stdio.h>
void main()
{
printf("Hello,World!");
}

と入力しているのですが,

LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
D:\ゲーム作り\プログラム\Hello\Debug\Hello.exe : fatal error LNK1120: 外部参照 1 が未解決です。
ビルドログは "file://d:\ゲーム作り\プログラム\Hello\Debug\BuildLog.htm" に保存されました。
Hello - エラー 2、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不...続きを読む

Aベストアンサー

> できれば本に書いてあるとおりstdioでいきたいのですが,どうしたらいいでしょうか・・

> LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。

こうなるのは、コンソール・アプリケーションを作成しようとしているのに
コンパイル・オプションがWindowsアプリケーション用だからです。

2つ目、3つ目のソースは、間違いです。
この際捨ててしまいましょう。


このカテゴリの人気Q&Aランキング

おすすめ情報