2011-10-04 29 views
1

この質問は、前の質問の拡張である:今Return an object in VBAVBAオブジェクト指向プログラミング

、私はVBAでオブジェクトを宣言して初期化する方法を知りたいのです。しかし

dim cm as new ConnectMe 

cm.ConnectMe("216.239.51.99") 

cm.login("username","password") 

、私はこれを行うとき、それは私に、「ユーザーを与える:

Declare Function ConnectMe Lib "C:\Windows\System32\cm.dll" (ByVal Arg1 As String) As ConnectMe 
Declare Function login Lib "C:\Windows\System32\cm.dll" (ByVal Arg1 As String, ByVal Arg2 As String) As Boolean 

次に、このラインの下に、私はこのコードを使用することができます:私はそうのようにそれを行うだろうように思えます定義されていない型が定義されていません。このC++クラスを適切に宣言して、VBAでインスタンスを作成して使用できるようにするにはどうすればよいですか?

ありがとうございました。

答えて

2

このコードはそのまま仕事に行くことはありません。 WindowsでC++でクラスを作成し、C++以外のプログラミング言語(VBなど)で使用する場合は、グラフィックを描画する必要がある場合はCOM classまたはActiveX controlを作成します。

this answerも役に立つと思われるかもしれません。

0

再びここに私:あなたの機能を使用して、このコードを使用するD

Dim cm as Object 

set cm = ConnectMe("parameter") 

if cm.login("username","password") then 
    msgbox "Connect!",vbinformation 
else 
    msgbox "not connect!",vbinformation 
end if 
+0

しかし、どのように機能を利用できると宣言しますか?私は@ymsが正しいと思っています。私はこれを全く別の角度からアプローチする必要があります。 –

+0

サムを見てくださいこのページのhttp://msdn.microsoft.com/en-us/library/bb687915.aspxには同じ回答があります。 –

+0

私はあなたが参照していると信じているものを見つけました: "[Public | Private]関数名Lib" libname "[エイリアス"エイリアス名] [([arglist])] [As type] "を宣言します。 "宣言関数ConnectMe Lib" C:\ Windows \ System32 \ cm.dll "(ByVal Arg1 As String)を使用したConnectMeクラス" ConnectMe "では、ユーザー定義型について不平を言います。助言がありますか? –

関連する問題