При выполнении маршалинга в среде CLR есть два пути развития событий: копирование и фиксация. Почему в следующем примере объект arg не может быть зафиксирован
[DllImport(@"MarshalLib.dll", CharSet = CharSet.Ansi)]
public static extern string PassAnsiString(string arg);
Здравствуйте, Аноним, Вы писали:
А>При выполнении маршалинга в среде CLR есть два пути развития событий: копирование и фиксация. Почему в следующем примере объект arg не может быть зафиксирован
А>А>[DllImport(@"MarshalLib.dll", CharSet = CharSet.Ansi)]
А>public static extern string PassAnsiString(string arg);
А>
А какой смысл? В .NET все строки хранятся в unicode, а маршалеру надо передать Ansi строку. Без копирования тут никак не обойтись...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.