「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板

@202■ (#559) DLLの関数にfloatの配列へのポインタを渡すとエラーが発生する - LSI (2009-03-12 20:56) /低 未処理
【症状】下記のようにして、floatの配列(とみなした文字列)へのポインタを渡そうとすると、アクセス違反が発生します。
【再現方法】
#ここから
!変数宣言が必要

●GetCharWidthFloat({整数}hdc,{整数}iFirstChar,{整数}iLastChar,{整数}pxBuffer)=DLL(「gdi32.dll」,「BOOL GetCharWidthFloatA(HDC hdc, UINT iFirstChar, UINT iLastChar, PFLOAT pxBuffer);」)

BUFFERとは文字列。
FIRSTとは整数=ASC(「A」)。
LASTとは整数=ASC(「Z」)。

BUFFERに4*(LAST-FIRST+1)を確保。

GetCharWidthFloat(母艦の背景ハンドル,FIRST,LAST,POINTER(BUFFER))。

LAST-FIRST+1回
 CHR(FIRST+回数-1)&「: 」&UNPOINTER(POINTER(BUFFER)+4*(回数-1),「float」)を表示。
#ここまで

【要望】アクセス違反が発生しないように、修正をお願いします。
【バージョン】ver.1.518
【その他】上記のサンプルで、「PFLOAT」を「void *」や「PDWORD」に変更すると、アクセス違反は発生しません。
DLLの関数にfloatの配列へのポインタを渡.. / LSI (2009-03-12 20:56) (#559)/ 低 未処理
  RE:DLLの関数にfloatの配列へのポインタ.. / しらたま (2009-05-21 15:20) (#789)/ 低 確認待ち
    RE:RE:DLLの関数にfloatの配列へのポイン.. / LSI (2009-05-22 22:37) (#809)/ 低 確認待ち
      RE:RE:RE:DLLの関数にfloatの配列へのポ.. / LSI (2009-05-24 16:04) (#826)/ 低 解決
      RE:RE:RE:DLLの関数にfloatの配列へのポ.. / しらたま (2009-05-24 17:23) (#828)/ 低 確認待ち

(#559)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能