例如我本来有个程序是命令行输入一些数据的,假如是
demo.exe -all 1.pdf test
这样的命令行参数,现在我不需要命令行了,因为我现在没有主函数了,需要写成一个dll,怎么去模拟这些参数的输入,因为我中间有处理这些参数的过程。
可以在代码中直接设置一个字符串数组来表示命令行参数。然后可以在代码中解析这个字符串数组来获取命令行参数的值。
例如假设想模拟以下命令行:
demo.exe -all 1.pdf test
可以在代码中写下如下内容:
string[] args = { "-all", "1.pdf", "test" };
然后就可以在代码中使用这个字符串数组来解析命令行参数了。
仅供参考,望采纳,谢谢。
可参考下面实例【按照下图要求完成自己的命令行执行】,链接:https://www.cnblogs.com/alichengxuyuan/p/12578006.html
就算是dll里的函数,也可以接收从你主函数传递过来的参数
你没有主函数了,那你dll里不还是一堆函数吗
在dll里的函数跟你代码里的函数没有本质区别,你添加形参啊
你都已经开始自己做dll了,不会连函数该如何调用还没搞明白吧
我记得dll也可以接受?
C++命令行参数的实现方法及使用方法,代码详细
https://blog.csdn.net/W96866/article/details/106060351/
GetCommandLine和CommandLineToArgv获取exe里传递的命令行参数。
如果你想要模拟命令行参数的输入,可以将命令行参数的值存储到环境变量中,然后在你的 DLL 中读取环境变量的值。
比如说,你可以在命令行中执行以下命令来设置环境变量:
set ALL=1.pdf
set TEST=test
然后在你的 DLL 中,可以使用 GetEnvironmentVariable 函数来获取这些环境变量的值。
char buffer[MAX_PATH];
DWORD dwRet = GetEnvironmentVariable("ALL", buffer, MAX_PATH);
if (dwRet == 0)
{
// 环境变量不存在
}
else
{
// 环境变量存在,buffer 中存储了环境变量的值
}
注意,这种方法只能在同一进程内有效,如果你的 DLL 被其他进程加载,就无法使用这种方法了。
另外,你也可以使用其他方法来传递参数给 DLL,比如说使用全局变量、文件、数据库等。