to  dbcontrols(泰山)
那么我来问你
ws95scm.dll里的函数在vc里的生明如下:
BOOL _declspec(dllimport)   SQLSCMLocalServiceControlA(LPSTR lpszSvc,int iCommand,LPDWORD pdwErr,int iCount,void *lpStartParameter);
BOOL _declspec(dllimport)   SQLSCMLocalServiceControlW(LPWSTR lpszSvc,int iCommand,LPDWORD pdwErr,int iCount,void *lpStartParameter);
DWORD _declspec(dllimport)  SQLSCMGetLocalServiceStateA(LPSTR lpszSvc,LPDWORD pdwErr);
DWORD _declspec(dllimport)  SQLSCMGetLocalServiceStateW(LPWSTR pwszSvc,LPDWORD pdwErr);
运行时成功我在vb里生明如下:Public Declare Function SQLSCMLocalServiceControl Lib "w95scm.dll" _
Alias "SQLSCMLocalServiceControlA" (ByVal lpszSvc As String, ByVal iCommand As Integer, pdwErr As Long, lpStartParameter As Any) As BooleanPublic Declare Function SQLSCMLocalServiceState Lib "w95scm.dll" _
Alias "SQLSCMGetLocalServiceStateA" (ByVal lpszsev As String, ByRef pdwErr As Long) As Long
运行时那么为什么提示错误:error :run-time error '49',bad DLL calling convetion 如果你能答上来,我的70分都是你的

解决方案 »

  1.   

    to  dbcontrols(泰山)
    哦,我上面的在vb里的code 少了些东西:
    更正如下:
    Public Declare Function SQLSCMLocalServiceState Lib "w95scm.dll" _
    Alias "SQLSCMGetLocalServiceStateA" (ByVal lpszsev As String, ByRef pdwErr As Long) As LongPublic Declare Function SQLSCMLocalServiceControl Lib "w95scm.dll" _
    Alias "SQLSCMLocalServiceControlA" (ByVal lpszSvc As String, ByVal iCommand As Integer, pdwErr As Long, _
    ByVal iCount As Integer, lpStartParameter As Any) As Boolean
      

  2.   

    Public Declare Function SQLSCMGetLocalServiceState Lib _
    "w95scm.dll" Alias "SQLSCMGetLocalServiceStateA" _
    (ByVal lpBuffer As String, ByVal nSize As Long) As LongPrivate Sub Form_Load()Dim dwRet As Long
    Dim dwErr As Long
    Dim strWk As String * 12strWk = "MSSQLServer"dwRet = SQLSCMGetLocalServiceState(strWk, dwErr)End Sub
      

  3.   

    to dbcontrols(泰山)
    vb中运行时提示错误:error :run-time error '49',bad DLL calling convetion