📄 新建 文本文档.txt
字号:
我的意思是,做一个ActiveX控件,当别人通过Add to project->components and controls添加我的控件后(此时自动生成一个头文件和一个cpp文件),能够在头文件中生成一些我在ActiveX中定义的结构,因为我的接口函数需要一些自定义的结构的指针作为参数。
这样是否违背了COM的思想?
我目前的解决办法就是在开发文档中给出结构的定义,让使用者自己定义结构的原型,然后将结构的一个实例的地址强行转换成long型作为参数来调用我的接口,参数到我这里后再强行转换成定义结构的指针。如下:
开始文档中给出定义:
typedef struct tagLegendData
{
int Address;
char Sign[21];
COLORREF Color;
}LegendData;
用户使用时:
1。申明:
typedef struct tagLegendData
{
int Address;
char Sign[21];
COLORREF Color;
}LegendData;
2。使用:
LegendData thisLegendData;
MyActiveX.fun((long) &thisLegendData);
我这边:
void XXXX::fun(long v)
{
LegendData* pLegendData = (LegendData*) v;
...
}
这种方法我怎么看怎么别扭,高手们是如何做的啊。能否给点意见和经验,感激不尽。
而且,就算是能导出自定义结构,在调用接口时我还是想不到如何传递自定义结构参数,感觉还是要强制转换成long型。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -