当前位置: 代码迷 >> PB >> 请教getclienthwnd()函数在11怎样调用
  详细解决方案

请教getclienthwnd()函数在11怎样调用

热度:96   发布时间:2016-04-29 09:14:04.0
请问getclienthwnd()函数在11怎样调用
函数getclienthwnd()在PB9中能够正常使用,为何在PB11中调用出错?  
  函数定义:  
   
  Function long GetClientHwnd(REF st_tcclient Destination, ulong Source, ulong Size) library "kernel32.dll" Alias For "RtlMoveMemory;Ansi"  
   
  函数调用:getclienthwnd(lst_client,lst_tc_ITem.lparam,28)  
  从PB9中迁移到PB11,编译能够通过,但是执行应用程序时出错:  
  错误代码: Error calling external function %s at line 32 in function f_getinten.

------解决方案--------------------
传参数的问题,加ref

探讨
函数getclienthwnd()在PB9中能够正常使用,为何在PB11中调用出错? 
  函数定义: 
   
  Function  long  GetClientHwnd(REF  st_tcclient  Destination,  ulong  Source,  ulong  Size)  library  "kernel32.dll"  Alias  For  "RtlMoveMemory;Ansi" 
   
  函数调用:getclienthwnd(lst_client,lst_tc_ITem.lparam,28) 
  从PB9中迁移到PB11,编译能够通过,但是执行应用程序时出错: 
  错误代码:  Error  calling  external  function  %s  at  line  32  in  function  f_getinten.

------解决方案--------------------
这个结构体的定义是怎样的st_tcclient
还有你要看一下,调用之前lst_tc_ITem.lparam是不是0,是0就是之前的调用已经出错了
还有,这是个内存拷贝函数,不需要加;ansi
  相关解决方案