API函数是否可用?是不是有的API在某些操作系统中不能使用的意思!
解决方案 »
- 求教,VB 怎么彻底的卸载 Webbrowser 控件
- 如何不通过任何控件将内存设备中绘制的图像保存到文件?
- 写Excel文件的问题
- 关于ADODC更新和修改报错的问题,在线等待,如果解决,100分全送
- 一个关于EbExecuteLine的问题
- 帮忙看看 Lucent软猫收数据时为何不响应 _OnComm 事件?
- 如何提高vb+excel组合编程的效率
- zmcpu(CPU),谢谢你的回答,接分 !如何使VB的程序,自己生成 .exe 文件???有难度吧~!高手!!!求助!(visualbasic2000)
- 如何把文件以二进制方式打开,并显示在文本框中?
- 用vb制作一个随机分组程序,求大神帮忙
- 我如何根据对方发过来的udp包,知道别人的ip?
- 会发声的DLL,并且可以读出/转换数字和人民币大写。发送前10名。
AlphaBlend是Win98新增API,所以Win95下无法使用SetLayeredWindowAttributes是Win2000新增API,所以Win9X下无法使用
来获取该函数是否存在,如果存在,则可以调用
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As LongPrivate Function blnIsLibraryReady(ByVal strLibraryFile As String) As Boolean
Dim o_lngRet As Long
Dim o_lngDllversion As Long o_lngRet = LoadLibrary(strLibraryFile)
If (o_lngRet <> 0) Then
o_lngDllversion = GetProcAddress(o_lngRet, "DllGetVersion")
blnIsLibraryReady = (o_lngDllversion <> 0)
FreeLibrary o_lngRet
Else
blnIsLibraryReady = False
End IfEnd Function
Private Sub Command1_Click() MsgBox blnIsLibraryReady("x.dll")
End Sub
End Sub
Dim o_lngRet As Long
Dim o_lngDllversion As Long o_lngRet = LoadLibrary(strLibraryFile)
If (o_lngRet <> 0) Then
o_lngDllversion = GetProcAddress(o_lngRet, strFunction)
blnIsAPIFuncReady = (o_lngDllversion <> 0)
FreeLibrary o_lngRet
Else
blnIsAPIFuncReady = False
End IfEnd Function
在这里顺便问一问:
可不可以动态连接API就是得到API可用后再将它连接进去
而且你如果知API所在的.DLL,你判断它的版本或者日期不行吗?
方法是笨了点
也还有点用吧,呵呵,我一直喜欢用笨办法解决问题
想那么多干什么呢?
只要我用的方法可以解决问题就行了
不行
有时把相关Dll复制过去也能运行
学习!!!!!!!!!!!!!