|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
![]()
COMとの連携
初心者くんさん
[2002/07/05 9:09:32]
[2275]
|
Re:COMとの連携
北岳さん
[2002/07/05 13:01:43]
[2277]
Re:COMとの連携
初心者くんさん
[2002/07/10 11:36:07]
[2303]
Re:COMとの連携
北岳さん
[2002/07/12 10:52:28]
[2321]
|
| [2275] COMとの連携 |
| 投稿者:初心者くんさん 2002/07/05 9:09:32 |
| COMのメソッドの引数に配列があるのですが、 ASPから dim strArray(2) strArray(1) = 'A' ・ ・ objtest = createobject(クラス名) objtest.method(strArray()) と呼ぶと型が一致しないというエラーがでます。 ほかにもstrArray(2)とかstrArrayでためしてみたのですが だめでした。 どうか教えてください。 |
| [2277] Re:COMとの連携 |
| 投稿者:北岳さん 2002/07/05 13:01:43 |
| VBScript では、変数のデータ型は常にバリアント型です。 (DIM strArray(2) as string のような型宣言はできません。) ASPはバリアント型の配列を渡しますが、受け取るCOM側がVB-DLLで、 dim strArray(100) as string と宣言してあれば、形違いが生じます。 私は、a=strArray()⇒objtest.method(a) で渡して、COM側で配列aを文字列型に直します。 COM側は、ASPとやりとりするには、全部Variantにしておき、VBプロシージャ内で(必要なら*)型変換します。 Public Function hoge(a As Variant, x As Variant, y As Variant) As Variant *例えばmid関数を使いたければ、プロシージャ内でCstrで文字型に変える必要が出ます。 |
| [2303] Re:COMとの連携 |
| 投稿者:初心者くんさん 2002/07/10 11:36:07 |
| 回答ありがとうございます。 さっそくバリアント型にしてみたのですが、 やはり型が一致しないというエラーが表示されます。 COM側の宣言 public function test(a() as variant) as variant ASP側の呼び出し dim a(2) a(0)="test" a(1)="test2" b = object.test(a) ほかに引数の書き方としてa(),a(2)とやってみたのですが だめでした。 宣言の仕方が間違ってるのでしょうか? |
| [2321] Re:COMとの連携 |
| 投稿者:北岳さん 2002/07/12 10:52:28 |
| public function test(a as variant) as variant 関数の戻り値test自体が配列として、 ASP側の呼び出し dim x(2) x(0)="あ" x(1)="い" set obj=CreateObject("project1.class1") a=x b = obj.test(a) for i=1 to 2 response.write "<br>" & i & "---" & b(i) next でうまく行く筈ですが・・・ |
|
TreeBBS For ASP V.0.1.3 |