佚名通过本文主要向大家介绍了在ATL写的控件中的一个方法用了自定义的结构体作参数,但用VC作测试时却不好使,谁能解惑?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在ATL写的控件中的一个方法用了自定义的结构体作参数,但用VC作测试时却不好使,谁能解惑?
描述:
解决方案1:
描述:
ATL写的控件,一个方法中用了一种结构体类型的参数,比如说 CMyCtrl::Func(MYSTRUCT p);
我在idl文件中写了结构体MYSTRUCT的定义,用VB做测试的客户程序时没问题,可以声明一个对象为
MYSTRUCT类型,比如说:dim p as MyCtrlLib.MYSTRUCT ,也说是说VB识别了我从控件DLL中输出的这种结构体类型 , 但如果用VC做测试程序时,当引入CMyCtrl这个类时,函数Func不能被成功引入,错误提示的意思是说参数类型MYSTRUCT无法识别。
请达人教我!
解决方案1:
EG:
IDL中:
[export]
[export]
struct Point
{
double x;
double y;
};
HRESULT GetStruct([out]Point* pCoord);
.cpp:
实现
{
Point Coord;
Coord.x = Coord.y = 1;
*pCoord = Coord;
return S_OK;
}
//in MYSTRUCT struct not using MFC,replace with BSTR ,VARIANT