

C言語でWindowApiのプログラムを行っています。
コンパイラはBorland C++です。
ウィンドウから、右クリックでファイルを開くダイアグラムを開き、
ある文字だけをファイルから読み込み、結果をウィンドウ上に
表示させると言う感じのプログラムを作っています。
そこでですが、
WndProc関数の中の、
GetOpenFileName(&ofn);
SetWindowText(hWnd , strFile);
と言う部分でファイルダイアログを開き、
ファイル読み込みをしているわけなのですが、
このstrFileを別の関数に渡したいわけです。
そういう時どうすればいいでしょう?
また、char型をchar_w型に変換する際に、
WideCharToMultiByte
MultiByteToWideChar
関数を用いればいいことがわかりました。
しかし、char_w型は検索しても見つかりません。
この事も何かヒントを教えていただけたらと思います。
宜しくお願い致します。
No.6
- 回答日時:
>char_w
すみません、こちらにも書きましたが誤りです。。。
http://oshiete.nikkeibp.co.jp/qa3364459.html
>別の関数に渡したいわけです
この関数はどこから呼び出されるのですか??
差し支えなければ、ソースを載せてみてはいかがでしょうか?
ちょっとソースは長くなるので無理だと思います・・・
一つは、WINAPI関数に渡したいのですが・・・。
回答ありがとうございます。
No.4
- 回答日時:
>GetOpenFileName(&ofn);
>SetWindowText(hWnd , strFile);
>と言う部分でファイルダイアログを開き、
>ファイル読み込みをしているわけなのですが、
この2行だとファイル名を文字列として得て、それをウィンドタイトルに表示しているだけです。strFileは、GetOpenFileNameの戻り値ですよね?これだけだとファイルの中身を読み込んではいませんよ。
言葉が混乱されているようですが、ファイル名=文字列、ファイルの中身=テキスト(文字列)データなどがごっちゃになっていませんか?
>このstrFileを別の関数に渡したいわけです。
>そういう時どうすればいいでしょう?
文字列ですので、普通に関数パラメータとして受け渡してください。
それとも、ファイルを読み込んでファイルの中身を渡したいのでしょうか?
File名を取得して、
"file.txt"の部分を置き換えたいのです。
ファイルから読み込むプログラムはできあがっております。
No.3
- 回答日時:
★この質問を立てる前に前の質問を解決する努力をして下さい。
・前の質問にまた回答を書き込みましたので補足して下さい。
http://oshiete1.goo.ne.jp/qa3364459.html→『ファイルを開く。(API・C言語)』
>ある文字だけをファイルから読み込み…
↑
これは C 標準関数の fopen、fclose を使っているようですね。
だから char型、wchar_t型の変換を行いたいのですよね?
もしかしたら前々回の質問も同じ理由でしたか?
http://oshiete1.goo.ne.jp/qa3342727.html→『char型の文字列をウィンドウに表示させる。』
この3つの質問は全部同じ意味合いですよね。
重要なのは TCHAR、LPTSTR型の意味を理解することです。
解決策1:
・コンパイルのオプションより UNICODE を定義しない設定にします。
総合環境を使っているのか、コマンドラインからオプションを指定しているのかは
こちらでは分かりませんが、UNICODE を定義しない設定でコンパイルして下さい。
・こうすると TCHAR、LPTSTR型は char 型に置き換えられますので C 標準関数との
やりとりで char型 と wchar_t型 の相互変換をしなくてもすみます。
この方法をお勧めします。
解決策2:
・コンパイルのオプションより UNICODE が定義されていたらば
wchar_t 型から char 型に変換する仕組みをとります。
変換方法は MultiByteToWideChar() 関数で行えます。
あと検索時は『wchar_t』型です。
既に回答がありますが、前回の質問の aris-wiz さんのはちょっとした記述ミスです。
正しくは『wchar_t』型になります。
以上。UNICODE 定数についての理解度を補足して下さい。先に進みませんから。
参考URL:http://msdn.microsoft.com/library/ja/default.asp …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
char型にint型の数値を代入する。
-
VC++20051を最近はじめました
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
strcatの逆をしたい
-
C言語にて構造体のメンバがNULL...
-
C++Builder 2009 テキスト...
-
文字列の反転
-
WM_CHAR or WM_KEYDOWN の「wPa...
-
しつこい様ですが、再度ポイン...
-
入力された文字列の中の数字を...
-
char*を初期化したいのですが
-
動的メモリの初期化方法について。
-
wsprintf( ポインタ , "%d" , "...
-
Cの関数の引数のconst *charに...
-
文字型配列に格納した空白の切捨て
-
ポインタ配列
-
char[]をDWORDに格納するには
-
c言語でポインタ変数を用いた配...
-
unsignedの使い分け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CStringからchar*への型変換に...
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
char型にint型の数値を代入する。
-
C言語にて構造体のメンバがNULL...
-
fgetc( )の戻り値はなぜ整数??
-
char 文字列型 の表現範囲が-12...
-
fstream型オブジェクトを関数の...
-
C++17で、unsigned char * 配列...
-
DWORDとcharの変換
-
文字列内の数字削除
-
new charとnew char[N]の違いは?
-
文字型配列に格納した空白の切捨て
-
C++Builder 2009 テキスト...
-
csvファイルをfscanfで読み込む...
-
文字列の途中から途中までを抽出
-
[C] 構造体メンバーのカンマ区...
-
エクセルのMID関数は、C言語では?
-
小数点入りの文字列をfloat型に...
-
wsprintf( ポインタ , "%d" , "...
おすすめ情報