現在、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.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 変換” この手の型に関する話とかホントに理解が乏しくて、どうにかしたいです・・・。
いつもすみませんです・・・
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ファイルを呼び出して画像表示できました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
バッチからsqlplusの接続エラー...
-
fortranでプログラムを実行する...
-
error C3867 関数呼び出しには...
-
ビルド失敗 指定されたファイ...
-
sys/time.hのインクルードがで...
-
TeXのエラーメッセージ
-
RightとLeft関数のライブ...
-
VC++6.0からVC++2010への移行
-
VB2008で定数に色の設定をした...
-
Handlesについて
-
vbsで作ったプログラムを続けて...
-
VBAでファイルを開くプログラム...
-
”_bstr_t”の使い方
-
EXEファイルを作りたいが、途中...
-
Excelのエラーで困ってます。
-
cの標準関数openでNo such a f...
-
c#プログラムについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
Excelのエラーで困ってます。
-
バッチからsqlplusの接続エラー...
-
fortranでプログラムを実行する...
-
HEWを使用しているのですが、こ...
-
コンパイルできません。
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
BC30002: 型 'ListItem' が定義...
-
Handlesについて
-
sys/time.hのインクルードがで...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
RightとLeft関数のライブ...
-
WindowsからLinuxへの移植
-
multiple definitionというエラー
-
HANDLEの宣言でのエラー
-
レコードセットをcloseする所で...
おすすめ情報