掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
アクティブXDLLをC++から呼ぶには? (ID:112570)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/SFEA1.asp のAllocating Arraysを参考にしました 取得は出来るというレベルで本当にこれで良いと言う保証は出来ませんが... == VB ======================== Option Explicit Public Function test_sub2(ByRef Data() As String) As Long Data(0) = "ああ" Data(1) = "い" Data(2) = "う" Data(3) = "え" Data(4) = "お" test_sub2 = 1 End Function == VC ======================== #include <stdio.h> #include <atlbase.h> #import "Project1.dll" using namespace Project1; void main() { USES_CONVERSION; if (SUCCEEDED(::CoInitialize(NULL))) { { _Class1Ptr pClass1(__uuidof(Class1)); unsigned long l; BSTR bstr; LPSAFEARRAY psa; SAFEARRAYBOUND sa; sa.lLbound = 0; sa.cElements = 10; psa = SafeArrayCreate(VT_BSTR, 1, &sa); printf("%d\n", pClass1->test_sub2(&psa)); for (l = sa.lLbound; l < sa.cElements; l++){ if (FAILED(SafeArrayGetElement(psa, (long *)&l, &bstr))) return; printf("%s\n", OLE2T(bstr)); } } ::CoUninitialize(); } }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.