vfp C# com组件 数组的地址传递问题

無法替代 2016-10-17 10:31:01
VFP 调用C#做的COM 怎样才能接收到数组


public int get_dict(string as_type,DateTime as_date, [MarshalAs(UnmanagedType.SafeArray)] ref Array as_list)


不加 [MarshalAs(UnmanagedType.SafeArray)] 类型不兼容

加上也接收不到数据

VFP代码这样 可以吗



PUBLIC a[1000]
obj.get_dict("1",DATETIME(),@a)



数值型、日期时间型、字符型都可以 就是不知道怎么处理 数组
...全文
1069 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
無法替代 2017-07-26
  • 打赏
  • 举报
回复
引用 1 楼 apple_8180 的回复:
这样测试什么结果? Dimension myArrary(10) 或 myArrary=space(10) obj=Createobject('你的COM对象') obj.get_dict("1",DATETIME(),@myArrary)
谢谢 解决好了 在c#里创建个变量来存这个数组 vfp再调用这个变量就能处理了 就是多一步处理 具体我也说不清 能实现就行了 恶心的是VFP做接口 各种不支持 得用C#转换一次 哎 。。。

       public int get_family_info(string as_medical_card_no)
        {
            Array arr_ref = new string[1];

            int value = sup.get_family_info(as_medical_card_no, ref arr_ref);

            RefArray1 = new string[arr_ref.Length];

            for (int i = 0; i < arr_ref.Length; i++)
            {
                RefArray1.SetValue(arr_ref.GetValue(i).ToString(), i);
            }

            return value;
        }

			lnReturn = goXnh_obj.get_family_info(tcYlzh)
			laOut = goXnh_obj.RefArray1
十豆三 2016-10-17
  • 打赏
  • 举报
回复
这样测试什么结果? Dimension myArrary(10) 或 myArrary=space(10) obj=Createobject('你的COM对象') obj.get_dict("1",DATETIME(),@myArrary)

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧