wcsncpy_sでのエラーについて – プログラミング – Home

wcsncpy_sでのエラーについて
 
通知
すべてクリア

[解決済] wcsncpy_sでのエラーについて


初心者マルコ
 初心者マルコ
(@初心者マルコ)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

開発環境はVC++2005 MFCです。
初心者です。

下記関数にて
'wcsncpy_s' : 3 番目の引数を 'CString' から 'const wchar_t *' に変換できませ
ん。
というエラーが出てしまいます。

wcsncpy_s(fileVerData.cFileNo,
FILE_VERSION_LEN,
StrClass,
(FILE_VERSION_LEN - 1));

解決方法がわかりません。どのたか教えて頂けないでしょうか。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

文字セットを

「マルチバイト文字セットを使用する」

にすると、CStringはchar型の配列(Shift_JISコードの文字列)として内部で
扱います。

当然

Shift_JISコード文字列 ≠ Unicode文字列

であるため、変換する必要があります。

変換方法はいろいろあるのでプログラムに適したものを使うといいでしょう。

方法 : さまざまな文字列型間で変換する
http://msdn2.microsoft.com/ja-jp/library/ms235631(VS.80).aspx
# 一番簡単なのは comdef.h の _bstr_tクラスを使う方法かな。


返信引用
初心者マルコ
 初心者マルコ
(@初心者マルコ)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

申し訳ありません。理解できませんでした。


返信引用
初心者マルコ
 初心者マルコ
(@初心者マルコ)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

本当に困っております。
ずうずうしいですが、解決方法をご教授願えませんでしょうか。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

理解しようとしない人に丁寧に教えるつもりはないです。
動けばそれでいいなら

#include <comdef.h>

wcsncpy_s(fileVerData.cFileNo,
FILE_VERSION_LEN,
_bstr_t(StrClass),
(FILE_VERSION_LEN - 1));

でオワ。


返信引用
初心者マルコ
 初心者マルコ
(@初心者マルコ)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

ありがとうございました。他のやり方を行いました。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> 他のやり方を行いました。
hala?


返信引用
ぬ
 ぬ
(@ぬ)
ゲスト
結合: 18年前
投稿: 39
 

理解しなかったら永遠に初心者、もしくは永遠に低技術のまま、使えない人間に
なるけどね…。
「他のやり方」ってことは、マルチポストしてたんでしょうかねぇ。
解決したらその方法を書けってなってるのに。
全く。


返信引用
ば
 ば
(@ば)
ゲスト
結合: 18年前
投稿: 1
 

別に『ぬ』が気にすることでもないと思うがね、ほっとけば


返信引用
初心者マルコ
 初心者マルコ
(@初心者マルコ)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

マルチポストって、複数の掲示板にってことですよね。
そういうことではありません。
あまりに簡単に解決、文字列操作をする必要なく解決してしまったので・・・・
他の人のソースを参考にしてたので、コンパイルを無理やり通そうとしていたのです
が、別に文字列意識せずにmemcpyで問題なかったので・・・・
すみません、お騒がせ致しました。

ちょっと『ぬ』さんの発言には怒りを覚えますが、こちらの不手際でもありますの
で・・・


返信引用
ぬ
 ぬ
(@ぬ)
ゲスト
結合: 18年前
投稿: 39
 

>『ぬ』さんの発言には怒りを覚えますが
「理解できなかった。」で済ませるのが信じられなくて言い過ぎました。
すいません。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました