板卡开发商只提供C的函数
Open(&pH,0)
Config(pH,SetWord)
Sent(pH,Data)
这样的函数原型。在VC中&pH获取的是句柄的指针,pH是句柄。
Dim pH as long
Open(pH,0)
此时的pH是句柄的指针,而不是句柄本身。使用ValPrt()函数是获取指针,我的需求正好相反。
我在VB中调用已经获取了句柄的指针,如何获取句柄?
谢谢!

解决方案 »

  1.   

    你理解错了!在C或者C++中,加&符号是按址引用的意思,只有*符号才是指针
    在函数体内修改它的值,函数体外的值也会相应的做出修改
    在Open函数中,它修改了 pH 的内存地址的值,而不是把一个内存地址写进去所以 Open(pH, 0) 中的pH应该就是句柄
    除非你的函数定义有错误,像这样的参数应该定义为 ByRef 而不是 ByVal
    如果你确认是指针的话,可以用CopyMemory来进行内存复制
      

  2.   

    是的,pH已经是句柄了,但是在Config(pH,SetWord) 这样的函数中直接使用pH后,函数返回值是非法。也就是pH不能直接引用,如何解决?谢谢!