MFCを使うための約束事は?

このQ&Aのポイント
  • MFCを使ってファイルの存在をチェックするプログラムが正常に動作しない
  • test.cppとtest.hを使用してMFCを利用したファイルの作成およびチェックを行っている
  • 助けていただける方はいらっしゃいますか?
回答を見る
  • ベストアンサー

MFCを使うための約束事は?

MFCをつかって、ファイルが存在しているかチェックする プログラムを作ったのですが、上手くいきません。 test.cppは以下のように書いています。 #include "test.h" int _tmain(int argc, _TCHAR* argv[]) { CFile f; CFileException e; if( !f.Open(argv[1], CFile::modeCreate | CFile::modeWrite, &e)) { return 0; } else { f.Close(); return 1; } } test.hは以下のように書いています。 #pragma once #include <afxwin.h> #include <afxext.h> #include <afxole.h> #include <afxdisp.h> どなたかご教授下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

なにがどう「上手くいきません」なのでしょうか?

関連するQ&A

  • c++ TCHARで文字化け

    TCHARはUNICODEが扱えるときいたので早速つかってみた。以下は引数を表示するプログラムである。 Visual C++ Express Editionを使った。 #include <stdio.h> #include <tchar.h> int _tmain(int argc, _TCHAR* argv[]) { int i=0; while(i<argc){ _tprintf(_T("%s\r\n"),argv[i++]); } return 0; } しかし上記プログラムに日本語の引数をわたすと文字化けするではないか。なでしょうか?

  • _TCHAR*での引数の読み込み

    VC++2010での、通常の #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { return 0; } のウィザードを使って、arvg[1]やargv[2]に引数を与えて、本体内で通常のCで使う printf("%s\n", argv[1]); や fopen(argv[1], "r"); を使いたいのですが、引数の型が_TCHAR*になっているため文字がそのまま使えません。 int main(int argc, char *argv[]) で使えば問題なく使えるのですが、デフォルトのウィザードを使った時の使い方を知っておきたいのです。 御経験のある方、御教示お願い致します。

  • C言語のprintfで桁数をそろえる

    次ので桁数をそろえると書いてあったけどやってみたらできなかった。 コンパイラはMS visual c++バージョンはおそらく7.1.3019 #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int a; scanf("%d",&a); printf("a=%3d\n",a); return 0; }

  • 【C++】関数ポインタの使い方

    関数ポインタの使い方で悩んでいます。 下記の (1)のようにグローバルメソッドとして定義したメソッドを関数ポインタに代入することは出来るのですが、 (2)のようにクラスのメンバメソッドとして定義したメソッドは関数ポインタに代入することは出来ませんでした。 Error:バインドされた関数へのポインターは関数の呼び出しにのみ使用できます。 というエラーが発生します。 関数ポインタに外部参照でメソッドを代入することは出来ないのでしょうか? -----(1)------------------------------------------------------------------ #include "stdafx.h" #include <iostream> using namespace std; int f(int a, int b){ return a * b; } int _tmain(int argc, _TCHAR* argv[]) { typedef int (* FUNC_POINTER)(int, int); FUNC_POINTER fp; fp = f; cout << fp(1,2) <<endl; getchar(); return 0; } ------------------------------------------------------------------------- -----(2)------------------------------------------------------------------ #include "stdafx.h" #include <iostream> using namespace std; class MPointerList{ public: int f(int a, int b){ return a * b; } }; int _tmain(int argc, _TCHAR* argv[]) { typedef int (* FUNC_POINTER)(int, int); FUNC_POINTER fp; //fp = f; MPointerList mP; fp = mP.f; cout << fp(1,2) <<endl; getchar(); return 0; } -------------------------------------------------------------------------

  • C++でEXEを作成してCGI-BINで動作させてますが、ブラウザからの入力を受ける方法がわからん

    自前のEXEでTESTとブラウザに表示させることに成功しました =========-- #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout << "Content-type: text/plain" << endl; cout << endl; cout << "test" << endl; return 0; } ==============--- さて、POSTメソッドで受けた内容や、ウラウザの種類やREFERなどはどうやってEXEで取得するのかがわかりません。教えてください。

    • ベストアンサー
    • CGI
  • 外部シンボル未解決

    学習のため勉強していますが test3.obj : error LNK2001: 外部シンボル ""int * g_array" (?g_array@@3PAHA)" は未解決です。 となります。リンクエラーだと解りましたが、どこに問題があるのかわかりません。 ソースは以下のとおりです。よろしくお願いします。 【stdafx.h】 #include "targetver.h" #include <tchar.h> #ifndef _TEST4_H_ #define _TEST4_H_ #include <stdio.h> #include <stdlib.h> #include <time.h> const int MAXARRAY = 30; extern int g_array[MAXARRAY]; void printArray(); #endif #include "stdafx.h" 【test3.h】 int _tmain(int argc, _TCHAR* argv[]) { //配列の初期化 srand((unsigned int)time(NULL)); for(int i = 0; i < MAXARRAY; i++) { g_array[i] = rand() % 1000; } printArray(); return 0; } 【test4.h】 #include "stdafx.h" void printArray() { for(int y = 0; y < MAXARRAY/10; y++) { for(int x = 0; x < 10; x++) { int i = y * 10 + x; printf("%3d ", g_array[i]); } printf("\n"); } }

  • VC++2010 EE で #ifdef _MSC_VER #endi

    VC++2010 EE で #ifdef _MSC_VER #endif でエラー ソース始まり // _msc_ver.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #ifdef _MSC_VER #include "stdafx.h" #endif int _tmain(int argc, _TCHAR* argv[]) { return 0; } ソース終わり > fatal error C1020: 予期しない #endif です。 と出ます。なぜでしょうか?

  • argv内容の表示動作

    プログラミング初心者です。 コンソールアプリケーションのプログラミングの練習として、コマンドライン引数を表示することを考えています。書籍等を参考に手元で入力したソースでは、先頭の一文字しか表示されません。例えば、コマンドラインから > test.exe abc def ghi と入力すると、 > argv[0] = t > argv[1] = a > argv[2] = d > argv[3] = g と表示されます。 環境はWindowsXP + VisualStudio2008で、ソースは下のような具合です。 #include "stdafx.h" int _tmain(int argc, _TCHAR *argv[]){ int i; for ( i = 0; i < argc; i++){ printf("argv[%d] = %s\n", i, argv[i]); } return 0; } どの箇所が原因でこのようになってしまうのでしょうか?

  • 文字配列から数値への変換

    MicrosoftのVisual-Studio 2005を使っています。 C/C++については、ほぼ素人で、困っています。 下記のような簡単なソースで、 456 012 678 を表示するようにしたいのですが、できなくて困っています。 最初の 123 789 345 は下記のソースで表記できたのですが、どうすればよいの でしょう? 数値をわざと文字列で読み込んで、これを 数値に変換しているのでややこしいのかもしれませんが、 できればこれでやりたいので、申し訳ありませんが、教えていただ けないのでしょうか。よろしくお願いします。 #include "stdafx.h" #include "stdlib.h" char str[3][200] = { "123 456", "789 012", "345 678" }; int _tmain(int argc, _TCHAR* argv[]) { int a[10]; for (argc = 0; argc < 3; argc++){ a[argc] = atof(str[argc]); printf("%d\n", a[argc]); }; return 0; }

  • _putts、_putwsが実行されない

    #define _UNICODE #define UNICODE #include <stdio.h> #include <tchar.h> int _tmain() { TCHAR tStr[] = _TEXT("あ"); int errCode; printf("%d\n", WEOF ); errCode = _putts( tStr ); if( errCode == WEOF ){ printf("errCode is WEOF\n"); } return 0; } なぜか_puttsが成功せず、プロンプトにも文字は表示されません。 原因が分からないのですが、初歩的なことだと思います・・。 よろしくおねがいします。

専門家に質問してみよう