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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
iwao

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

#1 投稿記事 by iwao »

'メインファイル
'--------------------------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
'-------------------------------------------------------------------
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

#2 投稿記事 by Sinryow »

コード: 全て選択

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

コード: 全て選択

Function Export Sashite(xykoma As *POINTsyougi,
    komaidoudekirubasyo As *POINTsyougi) As Long
にすればよいのではないでしょうか。
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
iwao

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

#3 投稿記事 by iwao »

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

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

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

#4 投稿記事 by iwao »

Function Export Sashite(xykoma As *POINTsyougi,
komaidoudekirubasyo As *POINTsyougi) As Long
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

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

#5 投稿記事 by イグトランス »

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

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

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

#6 投稿記事 by iwao »

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