あるHPのコードを参考に文字をクリップボードへ
コピーするコードを書いてみましたが、エラーが
できます。なにかおかしいかご指摘いただけないでしょうか?
HGLOBAL hText;
wchar_t *pText;
hText = GlobalAlloc(GMEM_DDESHARE | GMEM_MOVEABLE, 4);
pText = (wchar_t*)GlobalLock(hText);
lstrcpy(pText, L"abc");
GlobalUnlock(hText);
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT, hText);//ここでヒープが壊れていると起こられます。
CloseClipboard();
もっとも単純なテストコードです。
いろいろとチェックを手抜きしてますが、とりあえずOKとします。
No.1ベストアンサー
- 回答日時:
GlobalAllocで割り当てサイズとして「4」を指定していますが、これは「4バイト」を意味します。
ところが、lstrcpyでコピーしているL"abc"は4文字=8バイトを占有するので、確保したメモリの量を超えてメモリを書き換え(=破壊)してしまっています。
これが原因ではないでしょうか。
ご回答ありがとうございます。
いまちょうど自己解決したところです。
原因はおっしゃる通りです。
ただしくは
hText = GlobalAlloc(GMEM_DDESHARE | GMEM_MOVEABLE, 4 * sizeof(wchar_t));
です。
で、返信がない場合どうやって質問を締めようかと悩んでいたところです^^;
#いつになったらこの文字操作に慣れてくるんだろう。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
バイト列とバイナリ列の違いが...
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
URLは最高何文字まで可能なので...
-
UCS-2の一覧表が欲しい
-
VBAでUnicodeしか存在しない文...
-
:(コロン)のKeyCode
-
PICマイコンで変数値の保持
-
文字数を取得したい
-
3バイト文字(UTF-8)をprintfで...
-
64bit対応
-
コンピューターのデーターの扱...
-
[VBScript][wsh]byte単位でのデ...
-
UTF-8とUTF-16およびUTF-32につ...
-
C言語において2バイト文字を検...
-
参考書3冊調べましたが!? ...
-
VBAでShift-JISのURLエンコード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
エクセルシート名の制限を変更...
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
バイト列とバイナリ列の違いが...
-
ビットスワップとバイトスワッ...
-
VBAでShift-JISのURLエンコード
-
ピクセル,dpiから容量(バイト...
-
「1TB」のHDDに日本語は何字入...
-
SQLで1バイト、2バイト混在...
-
バイナリとBCDコード
-
Javaで日本語1文字のバイト数
-
UCS-2の一覧表が欲しい
-
3バイト文字(UTF-8)をprintfで...
-
:(コロン)のKeyCode
-
【VB2005】テキストボックス内...
-
64bit対応
-
URLは最高何文字まで可能なので...
-
機種依存文字をチェックしたい。
おすすめ情報