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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
SetWindowText関数について
C言語・C++・C#
-
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
TCHAR文字列?の特定部分の数字文字をint型の数値に変える方法
C言語・C++・C#
-
-
4
ビジュアルC++でボタンの有効/無効
C言語・C++・C#
-
5
エディットボックスの入力制限について
C言語・C++・C#
-
6
CString から LPCTSTRの型に変換
C言語・C++・C#
-
7
リソースエディタでスタティックテキストの文字サイズの変更
C言語・C++・C#
-
8
CString型の文字列連結について
C言語・C++・C#
-
9
作成したウインドウのサイズを固定するには?
C言語・C++・C#
-
10
コンボボックス表示文字列を取得する場合
C言語・C++・C#
-
11
コンボボックスのドロップダウンリストが表示されない
C言語・C++・C#
-
12
「キャンセル」ボタン付きの処理中ダイアログ
C言語・C++・C#
-
13
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
14
間接操作のレベルとは
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語にて構造体のメンバがNULL...
-
char*を初期化したいのですが
-
コマンドライン引数 *argv[]は...
-
C言語のintとcharの違いってな...
-
char 文字列型 の表現範囲が-12...
-
CStringからchar*への型変換に...
-
小数点入りの文字列をfloat型に...
-
エクセルのMID関数は、C言語では?
-
ポインタを使用 [数字列を数値...
-
C言語:小文字を大文字に変換す...
-
文字列のswap
-
WritePrivateProfileString
-
csvファイルをfscanfで読み込む...
-
WM_CHAR or WM_KEYDOWN の「wPa...
-
char AA[]{"全角文字"};から"全...
-
fstream型オブジェクトを関数の...
-
文字列str内の全ての数字を...
-
const char* s1とただのchar s1...
-
C言語で文字列をかえす正しい書...
-
動的メモリの初期化方法について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
C言語にて構造体のメンバがNULL...
-
小数点入りの文字列をfloat型に...
-
C言語のプログラムについてです
-
strcat関数を自作したいです
-
fstream型オブジェクトを関数の...
-
new charとnew char[N]の違いは?
-
DWORDとcharの変換
-
文字列の途中から途中までを抽出
-
char 文字列型 の表現範囲が-12...
-
const char* s1とただのchar s1...
-
wsprintf( ポインタ , "%d" , "...
-
c言語でポインタ変数を用いた配...
-
char型にint型の数値を代入する。
-
C言語で文字列をかえす正しい書...
-
C++17で、unsigned char * 配列...
-
共用体について
-
エクセルのMID関数は、C言語では?
おすすめ情報