作者:朱金灿

 

    将一个Windows程序从32位转为64位程序,出现用户回调期间遇到未经处理的异常的错误,如下图:

用户回调期间遇到未经处理的异常的错误的解决_javascript

经过调试发现是调用GetWindowLong返回为空指针,经过搜索,原来从32位转为64位程序需要对代码做一些调整,具体到这个错误就是:

SetWindowLong的地方改为SetWindowLongPtr

GetWindowLong的地方改为GetWindowLongPtr

DWORD xxx=(DWORD)ptr;的地方改为LONG_PTR xxx=(LONG_PTR)ptr;

long xxx=(long)ptr;的地方改为LONG_PTR xxx=(LONG_PTR)ptr;