生成了一个MFC APPWizard DLL 工程
要传出一个自定义的数据类型
比如
struct mydata{
double a;
double b;
}
怎么办?
要传出一个自定义的数据类型
比如
struct mydata{
double a;
double b;
}
怎么办?
解决方案 »
- 急!!!!新手求指教:vc++对sqlite3函数调用~~~数据库中where后面可以用变量表示吗?
- UNICODE字符的使用
- 根据提供的函数代码,求公式
- 为什么在多线程中使用OnPaint就不行,而改为Invalidate就可以呢?
- 高手请教:能不能(如何)把其他的应用程序界面(如QQ)嵌入到自己的窗口里运行
- 怎么做vc项目文件的批处理文件?
- 自定义了一个类,怎么对其传地址?
- 关于使用WinInet实现文件上传到Http服务器的问题,急急急
- 我的想法很单纯,如何把dll弄到一个EXE文件里,运行时再解开它?
- 大家现在都在学什么啊?
- 用ATL做的COM,在我的客户端能调用,在其他的人机器上却不能,怎么回事??
- msdn的提问~~~
例如函数
void fun(VARIANT FAR* pInfo)
我怎么把mydata型的数据赋给参数pInfo传出呢
double a;
double b;
}
//打包
extern mydata md;
VARIANT v;
v.vt = VT_UI1 | VT_ARRAY;
SAFEARRAYBOUND bound;
DWORD dwLen = sizeof(mydata);
bound.cElements = dwLen; // Set up size of array
bound.lLbound = 0;
pFld->parray = SafeArrayCreate(VT_UI1, 1, &bound); // Create it
void* pDest;
SafeArrayAccessData(v.parray, &pDest);
memcpy(pDest, &md, dwLen); // Copy into array
SafeArrayUnaccessData(pFld->parray);//解包
extern VARIANT v;
mydata md;
void* pDest;
SafeArrayAccessData(v.parray, &pDest);
memcpy(&md, pDest, v.parray->rgsabound->cElements); // Copy into array
SafeArrayUnaccessData(vFld.parray);
strcut mydata的封装自动化对象,a,b作为该对象的属性,返回IDispatch*
这样才符合COM的原则,而且这样的对象在VC中也可以使用