DLLに構造体配列を渡すことができません、教えてください。

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: DLLに構造体配列を渡すことができません、教えてください。

色々有難うございました、ABが使いやすくなってきます。

by iwao » 2005年6月14日(火) 19:47

今度は、Win32プログラミング講座のRPGのマップ移動機能を作るところを見て、自分が使えるように見ています、しかしとても難しく感じます。
これが解るようになって来たら色々ABを使いこなせると思います。
私はポインター操作も、とても苦手で、配列のカギカッコを使うのが専門です。

Re: うまくコンパイル出来ました、大変に有難うございます。

by イグトランス » 2005年6月14日(火) 18:50

> 私が作った別の方法、この方法ではうまくいきませんでした。
> Function Export Sashite(xykoma[1000] As *POINTsyougi,
> komaidoudekirubasyo[200] As *POINTsyougi) As Long

xykoma[1000] As *POINTsyougiと書くと「『POINTsyougiへのポインタ』の配列」ということになります。
「POINTsyougiの配列』へのポインタ」とは解釈されないのです。

この方法で配列の(xykoma[1])もデータが正しく出ていました。

by iwao » 2005年6月14日(火) 13:00

Function Export Sashite(xykoma As *POINTsyougi,
komaidoudekirubasyo As *POINTsyougi) As Long

うまくコンパイル出来ました、大変に有難うございます。

by iwao » 2005年6月14日(火) 12:49

私が作った別の方法、この方法ではうまくいきませんでした。
Function Export Sashite(xykoma[1000] As *POINTsyougi,
komaidoudekirubasyo[200] As *POINTsyougi) As Long

全てに正しく構造体データが引き渡されているかは、まだ私は解りませんが、最初の構造体のデータの読み取り確認も出来ました、後で全て確認できましたら、記載します。

by Sinryow » 2005年6月14日(火) 10:30

コード: 全て選択

Function Export Sashite(xykoma[1000] As POINTsyougi,
    komaidoudekirubasyo[200] As POINTsyougi) As Long

コード: 全て選択

Function Export Sashite(xykoma As *POINTsyougi,
    komaidoudekirubasyo As *POINTsyougi) As Long
にすればよいのではないでしょうか。

DLLに構造体配列を渡すことができません、教えてください。

by iwao » 2005年6月14日(火) 09:42

'メインファイル
'--------------------------MAIN-------------------------------------
Type POINTsyougi
X1 As Byte ' 動かす駒のX座標
Y1 As Byte ' 動かす駒のY座標
X2 As Byte ' 移動した場所駒のX座標
Y2 As Byte ' 移動した場所駒のY座標
M0 As Byte ' 駒移動で成り
End Type
'-------------------------------------------------------------------
Declare Function Sashite Lib "sougi" (xykoma As *POINTsyougi, komaidoudekirubasyo As *POINTsyougi) As Long

Dim xykoma[1000] As POINTsyougi
Dim komaidoudekirubasyo[200] As POINTsyougi
xykoma[0].X1=6
xykoma[0].Y1=8
xykoma[0].X2=7
xykoma[0].Y2=8
xykoma[0].M0=0
Sashite (xykoma,komaidoudekirubasyo)


'dllファイル
'-------------------------------------------------------------------
Type POINTsyougi
X1 As Byte ' 動かす駒のX座標
Y1 As Byte ' 動かす駒のY座標
X2 As Byte ' 移動した場所駒のX座標
Y2 As Byte ' 移動した場所駒のY座標
M0 As Byte ' 駒移動で成り
End Type
'-------------------------------------------------------------------
Function Export Sashite(xykoma[1000] As POINTsyougi, komaidoudekirubasyo[200] As POINTsyougi) As Long
'
'
Sashite=0
End Function
'-------------------------------------------------------------------

ページトップ