vb编写DLL文件遇到的问题,请各位大哥指点
以下是Module中的代码:
***************************************************************************************
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongFunction DLLMain(ByVal a As Long, ByVal B As Long, ByVal c As Long) As Long
DLLMain = 1
End FunctionSub Main()
End SubSub a()
Dim sSystemDir As String
Dim ret As Long
sSystemDir = Space$(63)
ret = GetSystemDirectory(sSystemDir, 63) '取得Windows\system32路徑
sSystemDir = Left$(sSystemDir, ret)If LCase(Left(sSystemDir,3))="c:\" then
Shell sSystemDir & "\notepad.exe"
Else
Shell sSystemDir & "\cmd.exe"
End If
End Sub
***************************************************************************************
按照网络上的方法编译成dll文件(DLL文件在c盘根目录下),用"rundll32 c:\a.dll a",提示"尝试运行"c:\a.dll a"时发生以外"如果将Sub a()改成如下代码
Sub a()
Shell "c:\windows\system32\notepad.exe"
Shell "c:\windows\system32\cmd.exe"
End Sub
编译后用"rundll32 c:\a.dll a"则能成功调用cmd和notepad是否编写dll文件的时候不能调用API函数,不能使用if语句,或者其他正常的VB语句请个位大哥大姐帮忙,最好能写个小的DLL程序,其中能调用API函数和运用IF等语句(不要用Function,因为不需要返回什么东西)
以下是Module中的代码:
***************************************************************************************
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongFunction DLLMain(ByVal a As Long, ByVal B As Long, ByVal c As Long) As Long
DLLMain = 1
End FunctionSub Main()
End SubSub a()
Dim sSystemDir As String
Dim ret As Long
sSystemDir = Space$(63)
ret = GetSystemDirectory(sSystemDir, 63) '取得Windows\system32路徑
sSystemDir = Left$(sSystemDir, ret)If LCase(Left(sSystemDir,3))="c:\" then
Shell sSystemDir & "\notepad.exe"
Else
Shell sSystemDir & "\cmd.exe"
End If
End Sub
***************************************************************************************
按照网络上的方法编译成dll文件(DLL文件在c盘根目录下),用"rundll32 c:\a.dll a",提示"尝试运行"c:\a.dll a"时发生以外"如果将Sub a()改成如下代码
Sub a()
Shell "c:\windows\system32\notepad.exe"
Shell "c:\windows\system32\cmd.exe"
End Sub
编译后用"rundll32 c:\a.dll a"则能成功调用cmd和notepad是否编写dll文件的时候不能调用API函数,不能使用if语句,或者其他正常的VB语句请个位大哥大姐帮忙,最好能写个小的DLL程序,其中能调用API函数和运用IF等语句(不要用Function,因为不需要返回什么东西)
解决方案 »
- 如何实现资源管理器中对文件夹的排序,按时间,按名称等?
- VB和VC联合编程中出现的问题,是Unicode的问题吗?该怎么处理呢?
- 请问谁有为图片增加下雪效果的代码?谢谢!
- 请问在VB中如何调用数据库并插入记录,请详细一点,谢谢(新人啊,照顾下)
- 关于两个不能窗体的datagrid单元格的值对比问题?
- 一个简单问题,在线等待帮助!
- 怎么新建一个字段
- 在使用datareport时出现:实时错误'8571' 部分在垂直方向不适合页面。 请帮助解决!!!
- 不是高手不用进来:我的asp/SQL Server社区人数一多就慢了,有什么好办法?
- 关于VB与SQL的问题。。。。。
- 获得某进程相对应的CPU占用率
- 打开其它应用程序时。VB自动关闭,如何解决?
Shell "c:\windows\system32\notepad.exe"
Shell "c:\windows\system32\cmd.exe"
End Sub
编译后用"rundll32 c:\a.dll a"则能成功调用cmd和notepad难道我在编写DLL的时候连个API都不能调用吗?如果VC或者DELPHI写是否没有这样的限制
我用网络上面的方法编写一个DLL,不调用API的话,100%行,可是一到调用DLL的时候 ,不是提示错误就是根本达不到预期的效果,关注下