我在Windows下使用cwRsync同步目录。我通过Visual C ++代码中的命令行调用它(Visual Sudio 2008)。 我使用CreateProcess()函数来执行它。 问题:在Windows XP上,同步有效。在Windows 7和8上,同步不起作用。当我在cmd.exe下直接测试命令行时,它可以工作。
Windows 7和8中的CreateProcess有什么问题?没有错误消息,因为该函数返回OK。
江东
答案 0 :(得分:0)
我找到了解决方案。麻烦在于我使用CreateProcess(),它在XP中有效但在Win7中无效
BOOL WINAPI CreateProcess(
_In_opt_ LPCTSTR lpApplicationName,
_Inout_opt_ LPTSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCTSTR lpCurrentDirectory,
_In_ LPSTARTUPINFO lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);
之前:
lpApplicationName = NULL
lpCommandLine = C:\ cwRsync \ rsync.exe --recursive / cygdrive / d / documents / / cygdrive / f / documents /
Windows XP =>好的但Windows 7 => KO
现在:
lpaApplicationName = C:\ cwRsync \ rsync.exe
lpCommandLine = --recursive / cygdrive / d / documents / / cygdrive / f / documents /
Windows XP =>好的,Windows 7 =>好的