请问这是什么原因呀??
请问这是什么原因呀??
因为api函数大多是由c语言开发的,按照功能的不同分别位于不同的系统动态链接库中,这些库有:user32.dll, gdi32.dll, kernel32.dll mmsystem.dlll
这些动态的连接库文件都是位于windows的系统文件夹中(system和system32)中
可能就是你所调用的api函数找不到动态连接库
这就要看具体情况了
在声明api函数是可以确定你所用的函数在哪个动态连接库中,具体的声明语句是:
有两种: 1。[public|private] declare sub 过程名 lib “库名” [ alias “别名”] [参数表]
2。[public|private] declare function 函数名 lib “库名” [ alias “别名”] [参数表] [as 返回值类型]
lib “库名” 确定你所用的函数在哪个动态连接库中,alias “别名”可以用它来调用该
api函数
因为api函数大多是由c语言开发的,按照功能的不同分别位于不同的系统动态链接库中,这些库有:user32.dll, gdi32.dll, kernel32.dll mmsystem.dlll
这些动态的连接库文件都是位于windows的系统文件夹中(system和system32)中
可能就是你所调用的api函数找不到动态连接库
找不到动态链接库的提示应该是“找不到xxxx文件”
楼主的错误是因为声明的函数名称与动态链接库提供的外部名称不符,检查一下你的拚写有没有错误,SetWindowLong正确的VB声明如下:
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
你可以用VB带的API浏览器来获得API函数的VB声明。