如果调用API处理以后的数组数据传回来由VB进一步处理,该怎么做?
也就是出去的时候是一个数组,回来的API是处理以后得到的另一个数组,由调用这个API的VB接收。向高手请教,本人是菜鸟,希望说得详细一点,先谢过了。 --------------------编程问答-------------------- http://zhidao.baidu.com/question/86890772.html --------------------编程问答-------------------- API不认识数组,只认识指针,API传递数组出入一般是传递0标单元:private declare function aFun (InArr as Long,OutArr as Double,mSize as long)as long
红色部分可以是C可以处理的任何类型
调用:
dim aIn(100) as long
dim aOut(200) as long
a=aFun(aIn(0),aOut(0),201)
--------------------编程问答-------------------- 请问aOut(0)和aIn(0)都是准备传出去让API处理的数组吗?
其实我还想知道的是,API处理好的结果放在一个数组中怎么再传回来给VB? --------------------编程问答-------------------- 可以假设是
aIn()输入数据到API
aOut()从API的输出数据 --------------------编程问答--------------------
一般你需要提供一个给API放数据的空间,上面的aOut数组就是用于这个目的,API内部,将数据填写在aOut后返回,你的aOut不就有了API处理后的数据了。 --------------------编程问答-------------------- 这个问题不是 VB 的问题,而是开发 API 接口的工具语言使用问题。
还有,就是楼上说的:“API不认识数组,只认识指针,API传递数组出入一般是传递0标单元:”
我认为这句话是有问题的。
VB 的数组结构其实是标准的 COM 接口类型,在 VC 里是可以通过 VARIANT 类型处理和识别的,
而在 VC 里修改 VB 数组内容以及重设数组大小这种操作,需要通过几个专门的 API 函数去处理。
只是过程比较麻烦,概念也比较多,这就涉及到 COM 接口和 COM 模型的的问题了。真要了解这一块
涉及的东西其实也是比较多的。建议这个问题到 VC 或其他的什么支持 API 接口开发工具版块去问。 --------------------编程问答--------------------
VB数组肯定不是COM接口类型,因为VB数组既没有Iunknown接口,也没有IDispatch接口 --------------------编程问答-------------------- 另外,大部分API是不懂的COM接口的 --------------------编程问答-------------------- 老实说,不明白楼主的意思。 --------------------编程问答-------------------- +1
补充:VB , API