gpt4 book ai didi

c# - 当从 c# 调用外部 dll 时,空格从命令行参数中删除

转载 作者:行者123 更新时间:2023-11-28 08:21:23 27 4
gpt4 key购买 nike

我们有一个用 c 编写的库,它由我们用 c# (V 3.5) 编写的主应用程序调用。
我们的 c# 应用程序的先前版本是在 Delphi 中,并且那个版本也使用相同的库。

使用方式如下:

我们在 C# 代码中使用 DLLImport 加载库并调用所需的函数。该函数使用位于库文件夹中的外部 dll 创建一个进程,并传递将由外部 dll 处理的文本文件的路径。

问题是,当这个过程是通过 Delphi 应用程序完成时,一切都很好。但是,现在所有空格都从文本文件的路径中删除,这会导致外部 dll 出现“找不到文件”错误。

c文件中的代码:

`Some Work  
// This routine executes the process
if (!CreateProcess (NULL, // No module name (use command line).
ProcessCommandLine, // Command line to execute, format : LibraryFolderPath\ExternalLibrary.exe Text File Path\TextFileName.txt
NULL, //
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
DirPath, // Use parent's starting directory.
&StartupInfo, // Pointer to STARTUPINFO structure.
&ProcessInfo ) // Pointer to PROCESS_INFORMATION structure.
)
{
// if fails to start application return to caller
return;
} // if !CreateProcess

指定为 "Text File Path\TextFileName.txt" 的路径为 ExternalLibrary.exe 修改为 "TextFilePath\TextFileName.txt"

我试过引用路径但没有帮助。

此行为或任何解决方案的任何具体原因?

最佳答案

来自documentation :

If lpApplicationName is NULL, the first white space–delimited token of the command line specifies the module name. If you are using a long file name that contains a space, use quoted strings to indicate where the file name ends and the arguments begin (see the explanation for the lpApplicationName parameter). If the file name does not contain an extension, .exe is appended. Therefore, if the file name extension is .com, this parameter must include the .com extension. If the file name ends in a period (.) with no extension, or if the file name contains a path, .exe is not appended. If the file name does not contain a directory path, the system searches for the executable file in the following sequence.

我知道您没有使用上述参数,但这个技巧可能会有所帮助。

关于c# - 当从 c# 调用外部 dll 时,空格从命令行参数中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699403/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com