DLL问题?“DLL 调用约定错误”提示。
函数原型:
BOOL _declspec(dllimport) SQLSCMLocalServiceStateW(LPWSTR lpszSvc,LPDWORD pdwErr);
vb:
public declare function SQLSCMLocalServiceState lib“....\w95scm.dll”
alias ) SQLSCMLocalServiceStateW(byval lpszsev as string, byval pdwerr as
long ) as bolean
error:?“DLL 调用约定错误”
问题点数:58、回复次数:14Top
1 楼NightBreak(菜鸟2004)回复于 2001-12-23 18:59:09 得分 0
alias括号去掉,如果要使用别名,就随便去一个不会冲突的别名,不用的话,去掉ALIAS;
Top
2 楼Ranma_True(乱马1/2(真))回复于 2001-12-23 20:19:52 得分 0
同意楼顶的Top
3 楼public(九天十地菩萨摇头怕怕,霹雳金光雷电掌@!@)回复于 2001-12-24 08:57:29 得分 0
to every friend
括号是我不小心写上的,我在vb中写的是
在vb中:
public declare function SQLSCMLocalServiceState lib“....\w95scm.dll”
alias SQLSCMLocalServiceStateW(byval lpszsev as string, byval pdwerr as
long ) as bolean
Top
4 楼public(九天十地菩萨摇头怕怕,霹雳金光雷电掌@!@)回复于 2001-12-24 09:10:16 得分 0
to every friend
括号是我不小心写上的,我在vb中写的是
在vb中:
public declare function SQLSCMLocalServiceState lib“....\w95scm.dll”
alias "SQLSCMLocalServiceStateW"(byval lpszsev as string, byval pdwerr as
long ) as bolean
Top
5 楼dbcontrols(泰山__抛砖引玉)回复于 2001-12-24 09:23:55 得分 0
“换成",注意中英文的引号差别,as bolean是不是应该是as long?Top
6 楼public(九天十地菩萨摇头怕怕,霹雳金光雷电掌@!@)回复于 2001-12-24 09:39:32 得分 0
我的代码:
Public Declare Function SQLSCMLocalServiceState Lib "E:\zzz\w95scm.dll" _
Alias "SQLSCMGetLocalServiceStateA" (ByVal lpszsev As String, ByVal pdwerr As Long) As Long
仍然:error :run-time error '49',bad DLL calling convetionTop
7 楼kingfish(工作很忙,很少来csdn...)回复于 2001-12-25 09:30:17 得分 0
帮你UPTop
8 楼fraser01(王晓栋)回复于 2001-12-25 09:39:47 得分 0
你把C++开头声明部分贴出来看看Top
9 楼public(九天十地菩萨摇头怕怕,霹雳金光雷电掌@!@)回复于 2001-12-25 10:19:24 得分 0
/***********************************************************************
Copyright (c) 2000, Microsoft Corporation
All Rights Reserved.
***********************************************************************/
#ifndef _WN95SCMH_
#define _WN95SCMH_
#ifdef __cplusplus
extern "C"{
#endif
// Numeric constants
#define SERVICE_UNKNOWN 0
enum enumSQLSCMCommands {SQLSCMCmd_STOP,
SQLSCMCmd_PAUSE,
SQLSCMCmd_START,
SQLSCMCmd_CONTINUE};
// Function prototypes
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);
#ifdef UNICODE
#define SQLSCMLocalServiceControl SQLSCMLocalServiceControlW
#define SQLSCMGetLocalServiceState SQLSCMGetLocalServiceStateW
#else
#define SQLSCMLocalServiceControl SQLSCMLocalServiceControlA
#define SQLSCMGetLocalServiceState SQLSCMGetLocalServiceStateA
#endif // !UNICODE
#ifdef __cplusplus
}
#endif
#endif
Top
10 楼public(九天十地菩萨摇头怕怕,霹雳金光雷电掌@!@)回复于 2001-12-25 10:20:55 得分 0
stdafx.h:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__9DFEB815_3B4F_11D4_9438_00C04F2770EA__INCLUDED_)
#define AFX_STDAFX_H__9DFEB815_3B4F_11D4_9438_00C04F2770EA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// TODO: reference additional headers your program requires here
#include <windows.h>
#include <stdio.h>
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__9DFEB815_3B4F_11D4_9438_00C04F2770EA__INCLUDED_)
Top
11 楼mazizhen(冰蓝)回复于 2001-12-25 11:06:11 得分 0
你在VB中的声明里,那个Long参数用的是 Byval
而你在DLL的声明里,那个是LPDWORD是指针,这样不会出现问题吗?NULL指针啊!!Top
12 楼public(九天十地菩萨摇头怕怕,霹雳金光雷电掌@!@)回复于 2001-12-25 11:34:56 得分 0
to : mazizhen(Mzz)
我该成指针也一样.
Public Declare Function SQLSCMLocalServiceState Lib "E:\zzz\w95scm.dll" _
Alias "SQLSCMGetLocalServiceStateA" (ByVal lpszsev As String, pdwerr As Long) As Long
仍然:error :run-time error '49',bad DLL calling convetion
Top
13 楼greensleeve(绿袖子)回复于 2001-12-28 15:10:48 得分 58
我来了Top
14 楼xuxia(旋风)回复于 2001-12-28 15:13:56 得分 0
不要BYVAL试试。Top
相关问题
- dll调用约定错误?
- 怎样调用约定为CDECL的DLL?
- 求助:dll调用约定错误
- VC做的dll在VB中调用,显示“DLL调用约定错误”
- 跟dll 调用约定有关的问题
- DLL的调用约定问题,请高手指教!!!
- 在VB中调用VC++的Dll文件,运行时出现Dll调用约定错误?
- 我动态调用DLL的函数出现如下提示
- 100分 调用DLL文件错误提示:Exception:EResNotFound in Module DLL.dll at000318C4
- 调用DLL出错,提示 unhandled exception in md5exe.exe (MD5DLL.DLL): 0xC0000005: Access Violation




