COMプログラミング教えてください。
//COMプログラミングVC->VB6.0
Visual C++で、
main.cpp , NumberClass.h , NumberClass.cpp , NumberIDL.idl
ファイルを以下のコードで作成し、
実行しましたら、正常にコンソールアプリケーションが動作しました。
次に、
VisualBasic6.0から参照設定で、Number.tlbというタイプライブラリを読み込ませて実行させたところ、「Functionまたは変数が必要です。」とエラーが表示されました。
どうすれば解決できますか?よろしくお願いします。
VB6.0のコード
Private Sub Command1_Click()
Dim a As NumberLibrary.NumberClass
Dim b As Long
b = a.Add(15, 35)
End Sub
//main.cpp
#include<stdio.h>
#include<string.h>
#include"NumberClass.h"
int main()
{
NumberClass Number;
printf("%d",Number.Add(10,90));
getchar();
return 0;
}
//NumberClass.h
class NumberClass
{
private:
int num;
public:
int Add(int a,int b);
void Save(int a);
void Load(int *a);
};
//NumberClass.cpp
#include"NumberClass.h"
int NumberClass::Add(int a,int b)
{
return a+b;
}
void NumberClass::Save(int a)
{
num=a;
return;
}
void NumberClass::Load(int *a)
{
*a=num;
return;
}
//NumberIDL.idl
import "oaidl.idl";
import "ocidl.idl";
[uuid(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx),version(1.0)]
library NumberLibrary
{
importlib("stdole2.tlb");
[uuid(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx), object]
interface INumber : IUnknown
{
HRESULT Add([in]int a,[in]int b);
HRESULT Save([in]int a);
HRESULT Load([out]int *a);
};
[uuid(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)]
coclass NumberClass
{
interface INumber;
}
};
お礼
レス遅れまして失礼いたしました。 今日、本屋で、教えていただいたCOM本の中身を 見てきました。後半は???ですが、前半は、 今あるC++の知識(といっても中途半端ですが)で 何とか読めそうな気がしました。 紹介いただきありがとうございました。 (見ただけでまだ買っていません。給料日前なので・・・)