
現在、ifjpeg.spiのDLLファイルで画像データを表示させるプログラムを作成中です。
このプログラムで、
if( IsSupported(OpenDialog->FileName.c_str(),theFile) != 0 )
このプログラムでビルドを行うと次のようなエラーが出ます。
[BCC32 エラー] Unit1.cpp(106): E2034 'wchar_t *' 型は 'char *' 型に変換できない
[BCC32 エラー] Unit1.cpp(106): E2340 1 番目のパラメータは char * 型として定義されているので wchar_t * 型は渡せない
”IsSupported”は
ProcIsSupported IsSupported =
(ProcIsSupported)GetProcAddress(hSPI, "IsSupported");
このように宣言していて、
typedef int __stdcall (*ProcIsSupported)(LPSTR,DWORD);
このようなプログラムなのですが、解決方法を教えて頂けませんでしょうか?

No.2ベストアンサー
- 回答日時:
質問するには、もう少し情報があった方がいいでしょう。
既にある回答の情報から、C++ Builder のようですが、2009 or 2007 以降、ダイアログにある文字データの型が AnsiString から、UnicodeString に替わりました。
このため、c_str() をとっても、char * ではなく、wchar_t* が帰ってきます。
で、横着をするのなら、UnicodeString が AnsiString にキャスト可能であることを使って、
if( IsSupported(OpenDialog->FileName.c_str(),theFile) != 0 )
を、
if( IsSupported(static_cast<AnsiString>(OpenDialog->FileName).c_str(),theFile) != 0 )
と、一度 AnsiString にしてから、.c_str() をとると、char * が帰ってきます。
回答頂きありがとうございます m(_ _)m ”wchar_t char 変換” この手の型に関する話とかホントに理解が乏しくて、どうにかしたいです・・・。
いつもすみませんです。
どうにか、解決できてDLLファイルを呼び出して画像表示できました!
No.1
- 回答日時:
似たようなエラーで何度か質問をしているようですが……
# http://oshiete.goo.ne.jp/qa/7466514.html
# http://oshiete.goo.ne.jp/qa/7465903.html
何が問題なのか理解していますか?
回答で示された修正方法をコピペしただけで、何が問題になっているのか理解していない為にこのような質問を繰り返しているのではないかと思いますが……。
# Susieプラグイン使うなら、unicodeではなくmbcsにプロジェクト自体を設定した方がいいかと思いますけどね。
# C++ Builder 2009は使っていないので具体的な対策はちょっと不明ですが。
「wchar_t char 変換」で検索すると、相互変換する方法を説明しているページが見つかると思いますので、
OpenDialog->FileName.c_str()で渡すのではなく、char型での文字列に変換したものを渡せばよいでしょう。
回答頂きありがとうございます m(_ _)m ”wchar_t char 変換” この手の型に関する話とかホントに理解が乏しくて、どうにかしたいです・・・。
いつもすみませんです・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
適切な変換関数が存在しない???
-
コンパイルできません。
-
キーの自動入力
-
DLL関数を使ったプログラム
-
レコードセットをcloseする所で...
-
fortranでプログラムを実行する...
-
右オペランドを扱う演算子は定...
-
visual C++ でビルドの中止がで...
-
別環境に移植するとヘッダファ...
-
コールバック関数指定時のエラー
-
Visual Studioのstrcpy_sについて
-
vbaのインポートでエラー
-
C++でscanfは使えない?
-
multiple definitionというエラー
-
Handlesについて
-
バッチからsqlplusの接続エラー...
-
c言語をgcc.exeにコンパイルし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
コンパイルできません。
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
バッチからsqlplusの接続エラー...
-
HEWを使用しているのですが、こ...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
DLL関数を使ったプログラム
-
Arduinoに関する質問
-
sys/time.hのインクルードがで...
-
Visual Studioのstrcpy_sについて
-
BC30002: 型 'ListItem' が定義...
-
RightとLeft関数のライブ...
-
VBAでファイルを開くプログラム...
-
HANDLEの宣言でのエラー
おすすめ情報