AB4.21で次のコードをコンパイルしようとすると,
デバッグ・リリース共にコンパイル途中でBasicCompiler.exeが強制終了されてしまいます。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: #strict
TypeDef HRESULT = Long
Type VARIANT
End Type
Class Test
Public
Virtual Function f(
Macro_1 As QWord, Macro_2 As QWord,
Arg1_1 As QWord, Arg1_2 As QWord,
Arg2_1 As QWord, Arg2_2 As QWord,
Arg3_1 As QWord, Arg3_2 As QWord,
Arg4_1 As QWord, Arg4_2 As QWord,
Arg5_1 As QWord, Arg5_2 As QWord,
Arg6_1 As QWord, Arg6_2 As QWord,
Arg7_1 As QWord, Arg7_2 As QWord,
Arg8_1 As QWord, Arg8_2 As QWord,
Arg9_1 As QWord, Arg9_2 As QWord,
Arg10_1 As QWord, Arg10_2 As QWord,
Arg11_1 As QWord, Arg11_2 As QWord,
Arg12_1 As QWord, Arg12_2 As QWord,
Arg13_1 As QWord, Arg13_2 As QWord,
Arg14_1 As QWord, Arg14_2 As QWord,
Arg15_1 As QWord, Arg15_2 As QWord,
Arg16_1 As QWord, Arg16_2 As QWord,
Arg17_1 As QWord, Arg17_2 As QWord,
Arg18_1 As QWord, Arg18_2 As QWord,
Arg19_1 As QWord, Arg19_2 As QWord,
Arg20_1 As QWord, Arg20_2 As QWord,
Arg21_1 As QWord, Arg21_2 As QWord,
Arg22_1 As QWord, Arg22_2 As QWord,
Arg23_1 As QWord, Arg23_2 As QWord,
Arg24_1 As QWord, Arg24_2 As QWord,
Arg25_1 As QWord, Arg25_2 As QWord,
Arg26_1 As QWord, Arg26_2 As QWord,
Arg27_1 As QWord, Arg27_2 As QWord,
Arg28_1 As QWord, Arg28_2 As QWord,
Arg29_1 As QWord, Arg29_2 As QWord,
Arg30_1 As QWord, Arg30_2 As QWord,
/*[out,retval]*/ RHS As *VARIANT) As HRESULT
End Class
なんでこんなに大量の引数が必要かというと,
ExcelのApplicationインターフェイスのRunメソッドがそうなっているからです。
本当はVARIANTを値渡ししているのですが,ABでは構造体の値渡しができないため,
苦肉の策としてQWord型の引数2つに分割した結果,こんなことになってしまったのです。
(ようするに,元からArg1~Arg30までという具合で十分引数は多かったのですけどね)
AB4.21で次のコードをコンパイルしようとすると, デバッグ・リリース共にコンパイル途中でBasicCompiler.exeが強制終了されてしまいます。 [hide][code]#strict TypeDef HRESULT = Long
Type VARIANT End Type
Class Test Public Virtual Function f( Macro_1 As QWord, Macro_2 As QWord, Arg1_1 As QWord, Arg1_2 As QWord, Arg2_1 As QWord, Arg2_2 As QWord, Arg3_1 As QWord, Arg3_2 As QWord, Arg4_1 As QWord, Arg4_2 As QWord, Arg5_1 As QWord, Arg5_2 As QWord, Arg6_1 As QWord, Arg6_2 As QWord, Arg7_1 As QWord, Arg7_2 As QWord, Arg8_1 As QWord, Arg8_2 As QWord, Arg9_1 As QWord, Arg9_2 As QWord, Arg10_1 As QWord, Arg10_2 As QWord, Arg11_1 As QWord, Arg11_2 As QWord, Arg12_1 As QWord, Arg12_2 As QWord, Arg13_1 As QWord, Arg13_2 As QWord, Arg14_1 As QWord, Arg14_2 As QWord, Arg15_1 As QWord, Arg15_2 As QWord, Arg16_1 As QWord, Arg16_2 As QWord, Arg17_1 As QWord, Arg17_2 As QWord, Arg18_1 As QWord, Arg18_2 As QWord, Arg19_1 As QWord, Arg19_2 As QWord, Arg20_1 As QWord, Arg20_2 As QWord, Arg21_1 As QWord, Arg21_2 As QWord, Arg22_1 As QWord, Arg22_2 As QWord, Arg23_1 As QWord, Arg23_2 As QWord, Arg24_1 As QWord, Arg24_2 As QWord, Arg25_1 As QWord, Arg25_2 As QWord, Arg26_1 As QWord, Arg26_2 As QWord, Arg27_1 As QWord, Arg27_2 As QWord, Arg28_1 As QWord, Arg28_2 As QWord, Arg29_1 As QWord, Arg29_2 As QWord, Arg30_1 As QWord, Arg30_2 As QWord, /*[out,retval]*/ RHS As *VARIANT) As HRESULT End Class[/code][/hide] なんでこんなに大量の引数が必要かというと, ExcelのApplicationインターフェイスのRunメソッドがそうなっているからです。 本当はVARIANTを値渡ししているのですが,ABでは構造体の値渡しができないため, 苦肉の策としてQWord型の引数2つに分割した結果,こんなことになってしまったのです。 (ようするに,元からArg1~Arg30までという具合で十分引数は多かったのですけどね)
|