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

路径的一个问题?

楼主cbuser(cbuser)2002-12-03 21:32:06 在 C++ Builder / Windows SDK/API 提问

不知道大家遇到过没有?一个dll有个函数是读当前目录的“test.txt”文件,我用程序调用很正常,不过我写成ocx调用的时候就出怪问题了,dll找到当前目录,既不是system32又不是winnt,而是桌面,这是为什么? 问题点数:50、回复次数:4Top

1 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2002-12-03 22:18:49 得分 15

你的快捷方式是不是在桌面?  
  你把快捷方式的程序运行目录也改过去看看。  
  我觉得还是少用默认的路径比较好。Top

2 楼cbuser(cbuser)回复于 2002-12-03 22:25:32 得分 0

没有快捷方式呀,ocx是html中js调用的Top

3 楼invalid(空心菜(Python是个好东东,大家多用用!))回复于 2002-12-03 22:37:29 得分 25

IE的快捷方式是桌面吧。dll操作路径很麻烦,最好能在dll中用dll所在的路径去组合得到。  
  给你个例子关键是//****注释的前面。  
  有两个方法,一个是知道自己的名字。另一个是不知道自己的名字(动态库名被修改了)  
  char   dllpath[256];  
  #pragma   argsused  
  int   WINAPI   DllEntryPoint(HINSTANCE   hinst,   unsigned   long   reason,   void*   lpReserved)  
  {  
          switch   (reason)  
          {  
                  case   DLL_PROCESS_ATTACH:  
                          if(lpReserved)  
                                  OutputDebugString("DLL_PROCESS_ATTACH   Static   load");  
                          else  
                                  OutputDebugString("DLL_PROCESS_ATTACH   Dynamic   load");  
                          GetModuleFileName(hinst,dllpath,255);//*****  
                          break;  
                  case   DLL_PROCESS_DETACH:  
                          if(lpReserved)  
                                  OutputDebugString("DLL_PROCESS_DETACH   Call   process   termination!");  
                          else  
                                  OutputDebugString("DLL_PROCESS_DETACH   FreeLibrary");  
                          break;  
                  case   DLL_THREAD_ATTACH:  
                          OutputDebugString("DLL_THREAD_ATTACH");  
                          break;  
                  case   DLL_THREAD_DETACH:  
                          OutputDebugString("DLL_THREAD_DETACH");  
                          break;  
                  default:  
                          OutputDebugString("DllEntryPoint");  
          }  
          return   1;  
  }  
  //---------------------------------------------------------------------------  
  //--Function   GetIniFileName  
  //--功能:获得Dll对应目录下的ini文件的名称  
  //---------------------------------------------------------------------------  
  int   GetIniFileName(char   *inifile,const   char   *   inifilename)  
  {  
          int   iRet=0;  
          char   dllpath[256];  
          iRet   =   GetModuleFileName(GetModuleHandle("myapi.dll"),dllpath,255);//*****  
          memset(inifile,0,sizeof(inifile));  
          if(iRet   >   0)  
                  strcpy(inifile,ExtractFilePath(dllpath).c_str());  
          strcat(inifile,inifilename);  
          return   iRet;  
  }  
  //---------------------------------------------------------------------------  
  //--Function   getSvrInfo  
  //--功能:从ini文件中读取Ants   Server配置信息  
  //---------------------------------------------------------------------------  
  int   getSvrInfo(char   *   cSvrIP,int   &iPort){  
          TIniFile   *ini;  
          AnsiString   asSvrIP;  
          char   inifile[255];  
          GetIniFileName(inifile,"AntsAPI.ini");  
          ini   =   new   TIniFile(inifile);  
          asSvrIP   =   ini->ReadString("ServerInfo","asServerIP","127.0.0.1");  
          strcpy(cSvrIP,asSvrIP.c_str());  
          iPort   =   ini->ReadInteger("ServerInfo","iServerPort",3721);  
          delete   ini;  
          return   0;  
  }  
  Top

4 楼wangxiangsjz(王翔)回复于 2002-12-03 22:39:52 得分 10

还有可能是“我的文档”。不过我认为这些问题没有必要深究,重新设置一下路径就是了。Top

相关问题

  • 路径
  • 路径问题
  • 查找路径!
  • 路径问题?
  • 最短路径
  • 路径问题:)
  • 路径问题
  • 路径问题
  • 路径问题
  • 关于路径

关键词

  • 桌面
  • dll
  • 路径
  • outputdebugstring
  • 快捷方式
  • detach
  • 调用
  • lpreserved
  • 目录
  • attach

得分解答快速导航

  • 帖主:cbuser
  • pazee
  • invalid
  • wangxiangsjz

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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