OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

VOID型をSTRUCTのように

  • 暇なときにでも
  • 質問No.241984
  • 閲覧数45
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 59% (194/328)

LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam){

 HDC hDC;
 PAINTSTRUCT ps;
 static void *v = "abcdefg";

 switch(msg){
 case WM_PAINT:
  hDC = GetDC(hWnd);
  TextOut(hDC, 0, 0, (char*)v, strlen((char *)v));
  ReleaseDC(hWnd, hDC);
  ValidateRect(hWnd, NULL);
 break;


これで abcdefg が表示されるけど、defg を表示される方法が
分かりません。
abcdefg の文字列の長さは不明です。
char buf[1000];
のように大きく確保すればいいんだけど、そういうのをせず、
動的にやろうと考えています。

  TextOut(hDC, 0, 0, &(((char*)v)+3), strlen((char *)v)-3);

だと、メモリ上に配置されなければならない というエラーになります。
よい方法があったら教えてください。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル7

ベストアンサー率 52% (10/19)

>TextOut(hDC, 0, 0, &(((char*)v)+3), strlen((char *)v)-3);
TextOut(hDC, 0, 0, ((char*)v)+3, strlen((char *)v)-3);
で良いです。((char*)v)+3の値自体がアドレスなので、
さらに&はつけなくて良いです。
お礼コメント
A__

お礼率 59% (194/328)

ありがとうございます。できました。
投稿日時 - 2002-03-27 21:29:51
-PR-
-PR-
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ