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,因为不需要返回什么东西)

解决方案 »

  1.   

    是标准的dll的话,会有很多限制,不写也罢其实,你用vc直接写就好,不会的话,可以用其它的basic平台写
      

  2.   

    兄弟,其他BASIC平台是什么?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都不能调用吗?如果VC或者DELPHI写是否没有这样的限制
      

  3.   

    开始的时候我也像你这样遇到这个问题
    我用网络上面的方法编写一个DLL,不调用API的话,100%行,可是一到调用DLL的时候 ,不是提示错误就是根本达不到预期的效果,关注下
      

  4.   

    楼上的兄弟,不光是调用DLL,我初步试了下,连IF语句,ON ERROR,MSGBOX都不行,我估计除了定义变量,运算符号其他都不行了哪位大哥愿意指点一下
      

  5.   

    //兄弟,其他BASIC平台是什么PureBasic、 Real Basic之类的
      

  6.   

    能否给个PureBasic、 Real Basic的连接,并提供小弟一个简单的例子