C++ cli “外部”;";char**environ-Windows-C++/CLI

C++ cli “外部”;";char**environ-Windows-C++/CLI,c++-cli,porting,C++ Cli,Porting,我有一些旧的linux代码,我正试图移植到Windows。 当我第一次将其构建为纯本机DLL时,这段代码没有任何问题,但当我尝试将其设置为混合模式C++/CLI DLL时,我在以下方面遇到了一个未解决的外部对象错误: extern "C" char** environ; 为什么这适用于本机而不适用于CLI? 你知道如何解决这个问题,或者它到底做了什么吗?保存环境变量(路径等)。C标准(如果我没记错的话)要求environ指向这些变量的数组。它们还作为第三个参数传递给main入口点函数 显然,出

我有一些旧的linux代码,我正试图移植到Windows。 当我第一次将其构建为纯本机DLL时,这段代码没有任何问题,但当我尝试将其设置为混合模式C++/CLI DLL时,我在以下方面遇到了一个未解决的外部对象错误:

extern "C" char** environ;
为什么这适用于本机而不适用于CLI?
你知道如何解决这个问题,或者它到底做了什么吗?

保存环境变量(路径等)。C标准(如果我没记错的话)要求
environ
指向这些变量的数组。它们还作为第三个参数传递给
main
入口点函数

显然,出于某种原因,C++/CLI没有初始化它


要解决这个问题,您可以自己分配它,并填充(C)或(托管C++)。我不知道有任何就地修复,但应该不会太难。

您使用的是哪个
/clr
选项:
/clr
/clr:pure
/clr:safe