- ベストアンサー
DLL呼出し元の使用コード判定法???
.NET C++でDLL(マルチバイト指定)を作りました DLL呼出し元からデータを受取り別の表示プログラム(マルチバイト指定)に渡して表示させます DLL呼出し元がマルチバイト指定である時には正確に表示します ところがDLL呼出し元がUNICODE指定である場合にはメチャクチャな文字が表示されます 多分UNICODEの際にはDLL内部でANSIに変換してから表示プログラムに渡せば良いのだろうと思います ところがDLL呼出し元がANSI/UNICODEのいづれかを使用しているかの判定方法が分かりません この辺りのことをご指導お願い申し上げます
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>何か良い手はありませんか??? お気持ちはわからなくもないですが完璧な方法はありません。 自動判定処理を組み込むにしても判定処理のコストは高いですし誤判定することだってあります。
その他の回答 (4)
- wormhole
- ベストアンサー率28% (1626/5665)
DLL側にはマルチバイト文字用のワイド文字用の関数を用意して、呼び出す側で使い分けるべきです。
お礼
ANo3.のお方へのお礼にも記載した通りアプリ側には手を入れられません 何か良い手はありませんか??? ありがとうございます
- Yune-Kichi
- ベストアンサー率74% (465/626)
LPCSTRなどを使うような関数にLPCWSTRを渡すのは,そもそも間違いです。 DLL内の関数の呼び出し方を間違えているのですから, DLLを修正するのではなく,DLL内の関数を呼び出す側を修正すべきです。
お礼
ごもっともなご指摘ですがAPIをフックして、APIパラメータを読み取りたいのです ですからアプリ側を修正出来ないのです 大変困っております 助けてください、お願いします
- samtomsan
- ベストアンサー率55% (1060/1897)
文字コードの判定に関して下記に書かれています。 中を解読する必要がありますが、DLLを使用した方法なども書かれていますから参考になると思います。 http://dobon.net/vb/dotnet/string/detectcode.html
お礼
ありがとうございます コレ昔使ったことがあります HTML文のコード判定では百発百中でした でもトテモ重たいのです DLLの中に組み込んで良いのもやら・・・・・・ ともかくありがとうございました 今後とも宜しくお願い申し上げます
- Tacosan
- ベストアンサー率23% (3656/15482)
原理的に無理.
お礼
ありがとうございます 実は私も内心ではそう思っておりました でも ・・・・・ そこをナントかぁ~~!?!? お願いします
お礼
重ね重ねのご指導ありがとうございます 完璧な方法は無いとのことは理解致しましたが・・・・・ ・・・・・・まだウゥンウゥ~ン唸っております 生まれつき諦めが悪いものですから・・・・・・ ・・・・・諦めの悪さに関しては探査衛星『はやぶさ』を目標にしております ありがとうございました