经过前几天的艰苦奋斗,我们的“飞聊“的基本功能已经实现,从现在开始进入窗口美化、调试、打包等阶段。
不过今天上午问题又来了,在给窗体实现换肤功能的时候,虽然添加了模块(其中也已经调用声明了相应的API),窗体中也添加了相应的代码,但在运行时弹出了“实时错误'453':找不到DLL入口点SkinH_AttachEx in SkinH_VB6.dll”的对话框。如下图
其实遇到这种问题,很可能是调用的函数与系统接口的问题,我在换肤的模块中声明的函数为:
Public Declare Function SkinH_AttachEx Lib "SkinH_VB6.dll" (ByVal lpSkinFile As String, ByVal lpPasswd As String) As Long
提示找不到DLL入口点有几种可能:
1、在声明系统调用中的语句的词出错(比如把函数名拼写错了,这时候需要你重新检查一下你调用的函数名是否正确),这时如果你不是很清楚该函数的名称,可以用Dependency Walker分析工具打开相应的DLL动态链接库,用它可以查到正确的函数名称,也可以检查某些函数是否被破坏等;
2、在声明系统调用中的语句的词忘记了区分大小写(在声明系统调用函数时必须区分大小写);
3、还有一种情况就是你调用的那个DLL文件损坏或者缺少你要调用的函数,比如上面出现的错误“找不到DLL入口点SkinH_AttachEx in SkinH_VB6.dll”,很可能就是因为你的SkinH_VB6.dll动态链接库中中缺少SkinH_AttachEx函数或此函数发生错误,这时你同样可以用Dependency Walker检测一下该动态链接库中是否缺少此函数或此函数是否被破坏,如果是的话,重新下载一个相应的DLL文件来解决。