在开发中遇见一个问题
要把一个vc写的库封装为ocx供c#调用
其中要在ocx里面传递一个结构体的指针
我该如何传啊 例如:struct image{int code,Cstring name,char * type }
有一个方法:long getNum(image * myImage){...}我该如何把这个方法转换为ocx中的公开接口
请告诉指点
要把一个vc写的库封装为ocx供c#调用
其中要在ocx里面传递一个结构体的指针
我该如何传啊 例如:struct image{int code,Cstring name,char * type }
有一个方法:long getNum(image * myImage){...}我该如何把这个方法转换为ocx中的公开接口
请告诉指点
解决方案 »
- 如何自给工具栏边框?
- 求助:知道图片的宽和高,以及图像的数据。如何保存成图片?
- snmp agent的问题请教,求高手提示
- 求Dx9.0c开发工具!
- 关于UpdateData控制范围的问题
- 有VC做个程序打开Access做的数据库文件
- 为什么用PreTranslateMessage截获WM_SYSCOMMAND消息在按下最小化按钮时没有截获到,而为什么用PreTranslateMessage截获WM_SYSCOMMAND消息
- 高分求教:winsock与拨号网络:
- 什么地方能找到一个BHO的IE Toolbar最简单的例子?
- 谁能说说在堆中创建对象的优点和必要性--教科书上没有说
- SOCKET中listen函数第二个参数无效?
- C++ MFC
我本来就是采用你给出资料的第一种方法,但是传进去结构体的指针时,就报错了,是值超出了范围,原因我估计是结构体无法转换为一个variant
ImageStruct myImage;//是一个结构体
myImage.ImageType = System.Text.Encoding.Default.GetBytes("01");
myImage.Data = System.Text.Encoding.Default.GetBytes("00");
myImage.RetLen = 1;
object ob=(object)myImage;
object obj = new System.Runtime.InteropServices.VariantWrapper(ob);
IntPtr myImagePtr = System.Runtime.InteropServices.Marshal.AllocHGlobal(System.Runtime.InteropServices.Marshal.SizeOf(myImage));
retCode=this.axTDBA_ActiveX1.ExecuteSQL("00","00","00",sql,0,ref obj,300);//这个是从ocx转换过来的接口至于第二重方法,我没有采用,因为我的程序可能涉及到同时操作同一个对象的问题
!)
这个好像是www.codeproject.com 有demo
long getNum(int code,Cstring name,char * type);中间的CString可能要用BSTR*