開発環境はVC++2005 MFCです。
初心者です。
下記関数にて
'wcsncpy_s' : 3 番目の引数を 'CString' から 'const wchar_t *' に変換できませ
ん。
というエラーが出てしまいます。
wcsncpy_s(fileVerData.cFileNo,
FILE_VERSION_LEN,
StrClass,
(FILE_VERSION_LEN - 1));
解決方法がわかりません。どのたか教えて頂けないでしょうか。
文字セットを
「マルチバイト文字セットを使用する」
にすると、CStringはchar型の配列(Shift_JISコードの文字列)として内部で
扱います。
当然
Shift_JISコード文字列 ≠ Unicode文字列
であるため、変換する必要があります。
変換方法はいろいろあるのでプログラムに適したものを使うといいでしょう。
方法 : さまざまな文字列型間で変換する
http://msdn2.microsoft.com/ja-jp/library/ms235631(VS.80).aspx
# 一番簡単なのは comdef.h の _bstr_tクラスを使う方法かな。
申し訳ありません。理解できませんでした。
本当に困っております。
ずうずうしいですが、解決方法をご教授願えませんでしょうか。
理解しようとしない人に丁寧に教えるつもりはないです。
動けばそれでいいなら
#include <comdef.h>
wcsncpy_s(fileVerData.cFileNo,
FILE_VERSION_LEN,
_bstr_t(StrClass),
(FILE_VERSION_LEN - 1));
でオワ。
ありがとうございました。他のやり方を行いました。
> 他のやり方を行いました。
hala?
理解しなかったら永遠に初心者、もしくは永遠に低技術のまま、使えない人間に
なるけどね…。
「他のやり方」ってことは、マルチポストしてたんでしょうかねぇ。
解決したらその方法を書けってなってるのに。
全く。
別に『ぬ』が気にすることでもないと思うがね、ほっとけば
マルチポストって、複数の掲示板にってことですよね。
そういうことではありません。
あまりに簡単に解決、文字列操作をする必要なく解決してしまったので・・・・
他の人のソースを参考にしてたので、コンパイルを無理やり通そうとしていたのです
が、別に文字列意識せずにmemcpyで問題なかったので・・・・
すみません、お騒がせ致しました。
ちょっと『ぬ』さんの発言には怒りを覚えますが、こちらの不手際でもありますの
で・・・
>『ぬ』さんの発言には怒りを覚えますが
「理解できなかった。」で済ませるのが信じられなくて言い過ぎました。
すいません。