您的位置:程序门 -> .net技术 -> vc.net



vc++2005 用 winexce() 调用指定目录的 .exe  的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


vc++2005 用 winexce() 调用指定目录的 .exe 的问题
发表于:2008-02-06 02:08:12 楼主
如题
  systemtime   *s   =   new   systemtime();
getlocaltime(s);     //getsystemtime()   bekommt   die   greenwich-zeit.
string   ^hour   =   convert::tostring(s-> whour);
string   ^min   =   convert::tostring(s-> wminute);
if   (!directory::exists(".\\einzelberechnung"   +   hour   +   "."   +   min)
                          {
                          //   try   to   create   the   directory.
                          directory::createdirectory(".\\einzelberechnung"   +   hour   +   "."   +   min);
          }
                file::copy(".\\simus.exe"     ,     ".\\einzelberechnung"   +   hour   +   "."   +   min   +   "\\simus.exe"     ,   true);
                winEXEC(".\\einzelberechnung"   +   hour   +   "."   +   min   +   "\\simus.exe",null);  
我想在   .\\einzelberechnung"   +   hour   +   "."   +   min   +   "\\simus.exe   新建的这个文件夹里运行刚复制进去的   simus.exe
结果   编译不通过     说   'winEXEC'   :   cannot   convert   parameter   1   from   'system::string   ^'   to   'lpcstr'
但如果我要通过
  winEXEC(.\\simus.exe,null)
调用程序文件夹下的之前被复制的那个simus.exe就可以运行,毫无问题.

我是个新手   对"目录"的写法不是很明白,请高手帮助.  

谢谢!!!
发表于:2008-02-06 05:47:141楼 得分:0
c++.net
char*   不等于   string^
所以
static_cast <char*> (system::runtime::interopservices::marshal::stringtohglobalansi(str).topointer());
发表于:2008-02-06 06:10:422楼 得分:0
谢谢   hdt

string   ^ssimus   =   ".\\einzelberechnung"   +   hour   +   "."   +   min   +   "\\simus.exe";
char*   csimus   =   (char*)(marshal::stringtohglobalansi(ssimus)).topointer();
winEXEC(csimus,null);

已经可以编译通过了,但是目录还是不对,   单步运行后csimus是(时间假设是23:15)
  ".\einzelberechnung23.15\simus.exe"
看着也没问题了,但是,实际运行的还是".\simus.exe"

晕了!     一直没彻底完全明白目录问题!
发表于:2008-02-06 06:40:023楼 得分:0
对不起   !   目录的问题我明白了,   真正运行的的确是
".\einzelberechnung23.15\simus.exe"

可是   我如果直接双击这个文件夹下的simus,程序马
上会在这个文件夹下生成一些文档,比如".\einzelberechnung23.15\"一些文档".txt"

可为什么,用我的vc程序调用同样文件夹下的还是这个
simus,程序运行得到的那些文档就自动生成到".\"一些文档".txt"
而不是".\einzelberechnung23.15\"一些文档".txt"

所以之前我以为是".\simus.exe"在运行!

请大家帮我分析一下错误的原因,可能是我自己编的simus有问题?
还是说直接双击.exe与vc程序调用同样的程序,机制不一样,或是
哪里不一样呢?

谢谢!!
发表于:2008-02-06 15:56:464楼 得分:0
是你的程序simus.exe有问题,在这个程序中的当前目录与你现在的主程序的当前目录是不在同一目录上的..可能会在甚目录里产生文件!


快速检索

最新资讯
热门点击