CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

Release中调用DLL导出函数出现问题

楼主steed_jet(训练中de英雄)2005-12-14 11:11:31 在 VC/MFC / 进程/线程/DLL 提问

在Debug下一切正常,在Release下出现问题。用的是隐式连接方式,DLL头文件的导出声明如下  
  #ifdef   DLL32_API  
  #else  
  #define   DLL32_API   extern   "C"   _declspec(dllimport)  
  #endif  
  还有调用方式是用了WINAPI也就是_stdcall  
  实现文件  
  #define   DLL32_API   extern   "C"   _declspec(dllexport)  
  客户应用(调用DLL32)程序在环境设置中的Link选项卡下增加了DLL32.lib,客户程序头文件直接引用了上面的头文件。  
  出错操作大体在读文件过程中出现。在客户程序中打开了一个文件,用CFile打开  
  代码如下  
  file.Open(lpszPathName,CFile::modeRead|CFile::shareDenyWrite,&fe)  
  后面接下来就调用了dll32中的一个函数对这个打开文件进行操作,函数原型为  
  HANDLE   WINAPI   ReadFile(CFile&   file)  
  这个函数操作大体是申请一块内存用传入的参数读取一定的文件内容,然后返回了内存的HANDLE.  
  进行了跟踪发现程序并没有进入这个函数而是进入了另外的一个函数,不知道是什么原因。等待大虾指点! 问题点数:10、回复次数:4Top

1 楼38062708(土豆精)回复于 2005-12-14 11:26:10 得分 10

可能因为你的DLL是个DEBUG版的呢Top

2 楼steed_jet(训练中de英雄)回复于 2005-12-14 11:28:31 得分 0

debug版的没有出现问题,出现问题的恰恰是release版。Top

3 楼steed_jet(训练中de英雄)回复于 2005-12-14 11:35:27 得分 0

补充一下,在客户端程序中打开文件操作用了  
  TRY  
  {  
  .............  
  }  
  CATCH   (....)  
  {  
  ............  
  }  
  捕获错误,抛出的错误是文件存取被拒绝  
  我用的是VC++6.0版本环境打过补丁。Top

4 楼steed_jet(训练中de英雄)回复于 2005-12-26 10:43:36 得分 0

大侠们出手阿!Top

相关问题

  • dll中导出函数的互相调用问题
  • 为什么DLL导出类的析购函数不被调用?
  • 怎样在dll的导出函数中调用客户中的其他函数??
  • DLL导出函数
  • 问一个对DLL中导出函数调用传递参数的问题
  • 如何调用Dll导出类的函数?(最好给出源代码)
  • 如何声明正规Dll导出函数,使该函数可同时被VC/VB/Delphi调用?
  • DLL调用函数问题
  • DLL的函数调用????
  • regsvr32注册组件是不是就只是简单的调用组件DLL中的RegisterServer这个导出函数?

关键词

  • 函数
  • 文件
  • 客户
  • release
  • dll
  • api
  • 调用
  • 程序
  • cfile
  • 打开

得分解答快速导航

  • 帖主:steed_jet
  • 38062708

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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