gpt4 book ai didi

c# - 如何在 .NET 库中读取从 VB6 IDE 传递的命令行参数?

转载 作者:行者123 更新时间:2023-11-30 14:12:56 27 4
gpt4 key购买 nike

我有 app1.exe(用 VB6 构建),它接受一堆命令行参数。它调用 lib1.dll - 一个 C#/.NET 互操作库,需要访问 EXE 的命令行参数。我使用 Environment.CommandLine 读取命令行参数,效果很好。

当我在 VB6 IDE 中调试 app1.exe 时,我通常会进入项目属性、Make 选项卡并手动设置命令行参数文本框。但是,.NET 库在调用时根本看不到命令​​行参数。它只是看到整个东西都在 VB6.exe 进程下运行。

这是有道理的(因为在调试时,它确实在 VB6.exe 下运行),但它使调试变得困难,因为 .NET 库永远无法访问实际的命令行参数。

我的问题:除了手动将命令行参数传递给 .NET 库之外,在 VB6 IDE 中进行调试时,还有其他方法可以让其查看这些参数吗?

最佳答案

这只是 VB6 IDE 设计方式的核心。当您调试 VB6 代码时,您运行的不是进程,而是解释器。它执行 p 代码,而不是机器代码。这是一个意外的好功能,它允许调试您制作的 VB6 代码和 .NET 代码 [ComVisible]。这通常是不可能的,一个进程只能附加一个调试器。这也解释了为什么您的 .NET 调试器会看到 VB6.exe 进程,即同时具有解释器和调试器的进程。

因此,当您使用 Environment.CommandLine 时,您实际上是在读取传递给 VB6 IDE 的命令行。通常这是一个空的。

正确的方法很明确:不要试图通过后门获取信息。只需让您的 VB6 代码在您的对象上设置属性。

关于c# - 如何在 .NET 库中读取从 VB6 IDE 传递的命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840687/

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