LuaテーブルをC#バイト配列に変換しようとしています。次のように機能するDouble配列への変換を取得できました。
> require 'CLRPackage'
> import "System"
> tbl = {11,22,33,44}
> dbl_arr = Double[4]
> dbl_arr:GetValue(0)
> dbl_arr:GetValue(1)
> for i=0,3 do Console.WriteLine(dbl_arr:GetValue(i)) end
0
0
0
0
> for i,v in ipairs(tbl) do dbl_arr:SetValue(v,i-1) end
> for i=0,3 do Console.WriteLine(dbl_arr:GetValue(i)) end
11
22
33
44
>
ただし、を配列( )に変更するdbl_arr
と、次のエラーが発生します。Byte
dbl_arr = Byte[4]
(error object is not a string)
運が悪かったので、いろいろなことを試しました。どんな助けでもいただければ幸いです。
アップデート:
これを行うことで、エラーからもう少し多くの情報を得ることができました。
suc,err = pcall(function() byte_arr:SetValue(12,0) end)
Nowsuc
はfalseでありerr
、次のメッセージを返します。
SetValue failed
System.ArgumentException: Cannot widen from source type to target type either
because the source type is a not a primitive type or the conversion cannot
be accomplished.
at System.Array.InternalSetValue(Void* target, Object value)
at System.Array.SetValue(Object value, Int32 index)
ここからluaforwindowsをインストールしました。バージョン5.1.4-45です。Microsoft WindowsXPProfessionalバージョン2002ServicePack3を実行しています
アップデート:
これはサンプルコードであり、エラーが発生する場所です
> require 'CLRPackage'
> import "System"
> tbl = {11,22,33,44}
> dbl_arr = Byte[4]
> for i,v in ipairs(tbl) do dbl_arr:SetValue(v,i-1) end <-- Error occurs here