using namespace System;
//#using <System.Core.dll>class A
{
public:
const wchar_t* F() { return L""; }
};
String^ readUnicodeString(A& msg)
{
const wchar_t* text = msg.F();
String^ str = gcnew String(text); // <<< ICE указывает сюдаreturn str;
}
int main() {}
Компилятор VS 2008.
Если раскомментировать то получаем ICE.
Указывает на
1>fatal error C1001: An internal error has occurred in the compiler.
1> (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x6396E0DB:0x00000030]', line 182)
1> To work around this problem, try simplifying or changing the program near the locations listed above.
1> Please choose the Technical Support command on the Visual C++
1> Help menu, or open the Technical Support help file for more information
1> INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\CL.exe'
1> Please choose the Technical Support command on the Visual C++
1> Help menu, or open the Technical Support help file for more information
Со старым синтаксисом управляемого C++ всё компилируется без проблем.
Есть идеи как обойти ?
В файле где нужен System.Core добавляем явно #using <System.Core.dll> и не пользуемся типом 'String' .
В другом файле пользуемся типом 'String' но без плюшек от System.Core.
Профит
Вариант №2: Используем Precompiled Headers и тогда всё работает.
_NN>Компилятор прожевал но если использовать эту строку то давится снова.
У меня только 2 идеи,
1 — неймспесы. Потому что аналогичный код у нас всегда был в неймспесе, и вроде бы все работало
2 — ворнинги. Падение на ICE обычно происходило предварительно с выдачей ворнингов, но если они задавлены, то ничего не видно
Вообще поддержка clr в 2008й была кошмарной, нафига ее использовать, когда на дворе 2016
Здравствуйте, rm822, Вы писали:
_NN>>Компилятор прожевал но если использовать эту строку то давится снова. R>У меня только 2 идеи, R>1 — неймспесы. Потому что аналогичный код у нас всегда был в неймспесе, и вроде бы все работало
Всё в пространстве имён, но как видим разницы нет.
R>2 — ворнинги. Падение на ICE обычно происходило предварительно с выдачей ворнингов, но если они задавлены, то ничего не видно
Уровень 4
R>Вообще поддержка clr в 2008й была кошмарной, нафига ее использовать, когда на дворе 2016
Расскажите как собирать для .NET 3.5 , перейду прямо сейчас.
Здравствуйте, _NN_, Вы писали:
R>>Вообще поддержка clr в 2008й была кошмарной, нафига ее использовать, когда на дворе 2016 _NN>Расскажите как собирать для .NET 3.5 , перейду прямо сейчас.
это случайно не то? Правда для нового проекта. И реально ли запускается на .net 3.5 проверить не могу