ページ 11

ファイル選択ダイアログについて

Posted: 2011年2月14日(月) 23:41
by Rock_N
はじめまして、Rock_Nと申します。

今回はファイル選択ダイアログについて質問をします。
私はC言語とOpenCV2.1を用いてプログラムを作っています。

現在、下記の様な方法で読み込ませております。
また、読み込ませた画像はウィンドウで表示がされ、もうひとつのウィンドウではグレースケールの画像が表示されるものになっております。

コード:

 
    char* filename = argc == 2 ? argv[1] : (char*)"images.jpg";//静止画読込み
    if( (src = cvLoadImage(filename,1)) == 0 )
        return -1;


この読み込み部をファイル選択ダイアログで選択できるようにしたいです。
Googleなどでいくつかやり方も見たのですが、CとC++で書き方は異なるのでしょうか??
その点で分からなく困っております。

また、GetOpenFileNameを試しに入れてみると、
「C4047: '関数' : 間接参照のレベルが 'const char *' と 'int' で異なっています。」
が大量に出てしまいます。
GetOpenFileNameが無い場合は出てきません。

後、画像選択後にwavファイルを選択出来る様にもしたいのですが分かりません。
loop2a_.wavの部分を何か変数などに入れてしまえば良いかなとは思いついたのですが、
先ほどの上の画像の選択でも引っかかってしまっています。
ちなみに現在、音楽は下のような感じで読み込ませています。

コード:

 
  mono_wave_read(&pcm0, "loop2a_.wav");


環境はXP、VC++ 2010EEです。

よろしくお願いします。

Re: ファイル選択ダイアログについて

Posted: 2011年2月15日(火) 00:16
by MoNoQLoREATOR
とりあえず、ファイル選択ダイアログボックスについて、私が使っている書き方を張っておきます。
※大幅に省略してます

コード:

#include <windows.h>

char file_name[100];

OPENFILENAME ofn;


OPENFILENAME ofn;
char szFile[ MAX_PATH ] = "";
ZeroMemory( &ofn, sizeof( ofn ) );
ofn.lStructSize = sizeof( OPENFILENAME );
ofn.lpstrFilter = TEXT("BMP(*.bmp)\0*.txt\0")
			TEXT("GIF(*.gif)\0*.txt\0")
			TEXT("JPG(*.jpg)\0*.txt\0")
			TEXT("PNG(*.png)\0*.txt\0")
                      	TEXT("すべてのファイル(*.*)\0*.*\0\0");
ofn.lpstrFile = szFile;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_FILEMUSTEXIST;
		
GetOpenFileName( &ofn );

file_name = ofn.lpstrFile;
file_name
に変数名が格納されるので、あとはそれをつかってください。