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

我有app1.exe(用VB6构建),它需要一堆命令行参数.它调用lib1.dll – 一个C#/ .net互操作库,需要访问EXE的命令行参数.我使用Environment.CommandLine来读取命令行参数,这很有用.

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

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

我的问题:没有手动将命令行参数传递给.NET lib,在VB6 IDE中进行调试时,有没有其他方法可以看到它们?

解决方法

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

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

正确的方法是明确的:不要试图通过后门获取信息.只需在对象上拥有VB6代码属性即可.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...