CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

DLL问题?“DLL 调用约定错误”提示。

楼主public(九天十地菩萨摇头怕怕,霹雳金光雷电掌@!@)2001-12-23 18:55:07 在 VB / 基础类 提问

 
  函数原型:  
   
  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

关键词

  • vb
  • 括号
  • scm
  • 指针
  • dll
  • pdwerr
  • sqlscmlocalservicestate
  • sqlscmlocalservicestatew
  • bolean
  • w95scm

得分解答快速导航

  • 帖主:public
  • greensleeve

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo