0

如何使用作为参数传递给 C# 控制台应用程序的指针?我对这个问题很感兴趣,我的问题已经结束了,也许是为了我的简洁。也许我问错了问题,所以我会给出我遇到的情况。

我有一个旧版应用程序,我无法对其进行编辑。遗留应用程序能够调用 exe,此时它将指针传递到外部数据列表(他们的语言,不是我的)。

我有一个 C# 控制台应用程序,当旧应用程序调用 C# 控制台应用程序时,收到的参数是一个字符串。类似的东西

c4bds.WWW000054,1,c4bds.WWW000054,60025

我将此字符串的一部分识别为描述遗留系统中的工作站的值。但其余的对我来说都没有任何意义。

在 C++ 控制台应用程序中,main 可以这样构造...

int main(int argc, char *argv[])

我必须编写的由遗留应用程序调用的应用程序将在 .NET 中。通常在 .NET 中使用引用而不是指针。

C# 控制台应用程序中的 main 通常如下所示...

int main(string[] args)

因此我的问题。如何解释调用应用程序发送的参数值?否则,我怎样才能完成所需的功能?

4

1 回答 1

3

传递给控制台应用程序的参数不是指针(我不明白这是怎么回事,因为理论上两个不同的进程无法访问彼此的内存)。

您必须猜测这些值的含义,因为我不知道您的旧应用程序(可能是<workstation>.<filename or ressource name>,<list index>),但我可以告诉您如何在 .Net 控制台应用程序中读取参数。

它实际上与 C++ 中的工作方式相同(除了您没有变量argc,因为您可以使用 获取参数的数量args.Length)。

您所有的参数都在数组args中,第一个是程序名称。

例如,如果您调用这样的 .Net 程序MyProg.exe

MyProg.exe argument1 argument2

你会有

args[0] = "MyProg.exe"
args[1] = "argument1"
args[2] = "argument2"
于 2013-05-16T21:26:11.277 回答