Hi all, I tried to call another .exe file in my own exe file by using the system() API. But the return value of system() is -1 and errno is set to ENOENT. It indicates that the another exe file is not found. So I copy the another exe to the fake directory: C:\windoes\system32, since wine always find the exe file there. And I also set the environment variable "System" and "Path" in the key HOST_CURRENT_USER/Environment thru regedit. But still, wine couldn't find the another exe. Any help is welcomed. Milo Xu -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.winehq.org/pipermail/wine-users/attachments/20070626/965d03f8/attachment.htm
I use the debug channel. Here is the output: [root@localhost drive_c]# WINEDEBUG=+process,+exec wine ./System.exe trace:process:init_current_directory starting in L"C:\\" 0x10 trace:process:__wine_kernel_init starting process name=L"C:\\System.exe" argv[0]=L"./System.exe" trace:process:set_entry_point setting FT_Thunk at 0x602ae084 to 00000000 i: -1 ENOENT Any idea? Thanks in advance. Milo Xu On 6/26/07, Zhongli Xu <zhongli.xu@gmail.com> wrote:> > Hi all, > > I tried to call another .exe file in my own exe file by using the system() > API. > But the return value of system() is -1 and errno is set to ENOENT. It > indicates that the another exe file is not found. > > So I copy the another exe to the fake directory: C:\windoes\system32, > since wine always find the exe file there. > And I also set the environment variable "System" and "Path" in the key > HOST_CURRENT_USER/Environment thru regedit. > > But still, wine couldn't find the another exe. > > Any help is welcomed. > > Milo Xu >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.winehq.org/pipermail/wine-users/attachments/20070626/b1b0d116/attachment.html
On Tue, Jun 26, 2007 at 03:06:12PM +0800, Zhongli Xu wrote:> I use the debug channel. Here is the output: > > [root@localhost drive_c]# WINEDEBUG=+process,+exec wine ./System.exe > trace:process:init_current_directory starting in L"C:\\" 0x10 > trace:process:__wine_kernel_init starting process name=L"C:\\System.exe" > argv[0]=L"./System.exe" > trace:process:set_entry_point setting FT_Thunk at 0x602ae084 to 00000000 > i: -1 > ENOENT > > Any idea? Thanks in advance.Use CreateProcess(). Ciao, Marcus
On Tue, 26 Jun 2007, Zhongli Xu wrote:> Hi all, > > I tried to call another .exe file in my own exe file by using the system() > API. > But the return value of system() is -1 and errno is set to ENOENT. It > indicates that the another exe file is not found.That must be because you're calling the Unix system() function. If you want system() to work in Wine applications you must link with msvcrt and call its implementation of system(). -- Francois Gouget <fgouget@free.fr> http://fgouget.free.fr/ Cahn's Axiom: When all else fails, read the instructions.