最近在用COOPER的变电站自动化产品的HMI做二次开发,很简单,VBA开发。由于技术手册简单,技术服务 also too bad,被逼无奈,我准备在VBA中使用HOOK来截获HMI的消息,以便做更多的应用。但在开发这个钩子的时候,遇到了上述问题,GOOGLE了一上午,没发现任何有价值的答案。
我做了10多年的c++,对DLL还是非常熟的。无非两种原因导致这种情况,一是DLL本身没有导出这个函数,二是你自己的代码里有错误。咱不能怀疑kernel32.DLL有问题,可在自己的代码中也发现不了问题,代码如下,是从互联网上直接COPY来的:
Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA " (ByVal lpModuleName As String) As Long
Dim lModule As Long
lModule = GetModuleHandle("VssDiagram.exe")
看出问题来了吗?
整整一个上午啊,我都要抓狂了,我对着上述的代码看啊看,看看看,电光石火之间,I got it!
"GetModuleHandleA ",你怎么多了个blank!