Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / error C2018: unknown character в с++ + com VB.net / 5 сообщений из 5, страница 1 из 1
10.06.2015, 10:43
    #38980853
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2018: unknown character в с++ + com VB.net
.NET-овская сборка *.dll содержит классы Partial Public с кирилическими названиями, класс был сгенерирован из XSD схемы, при импорте в проекте с++ *.tlb ожидаемо ругается сабжем, "понизить" область видимости класса в исходной dll не представляется возможным ибо он используется System.Xml.Serialization.XmlSerializer, а этот кабан требует область видимости Public ... как побороть сабж? очень не хочется выносить класс в отдельную не-com-библиотеку .net и линковать ее к com-библиотеке
...
Рейтинг: 0 / 0
10.06.2015, 15:34
    #38981257
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2018: unknown character в с++ + com VB.net
NSFuimus1,

дать классам названия на английском, а для XmlSerializer'а навесить на них атрибуты с кириллическими названиями по схеме.
...
Рейтинг: 0 / 0
11.06.2015, 09:04
    #38981815
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2018: unknown character в с++ + com VB.net
Пока не догнал предложения - радует что кто-то вообще видит хоть какой-то путь ... а нельзя ли сделать проще типа того чтобы в проекте VB.NET каким-либо образом указывать нечто для класса чтобы компилятор в среде с++ не пытался генерировать для него описание в *.tli/*.tlh ... веть если я указываю ему тот же Friend то всЁ прокатывает (ну за исключением того что System.Xml.Serialization.XmlSerializer обламывает)
...
Рейтинг: 0 / 0
11.06.2015, 11:06
    #38981952
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2018: unknown character в с++ + com VB.net
NSFuimus1, используем атрибуты .

Было:
Код: vbnet
1.
2.
3.
Public Class Человек
    Public Имя As String
End Class



Стало:
Код: vbnet
1.
2.
3.
4.
5.
<XmlRoot(ElementName = "Человек"> _
Public Class Person
    <XmlElement(ElementName = "Имя")> _
    Public Name As String
End Class



То есть в коде теперь будут английские наименования, а сериализатор будет работать с русскими.

Но, честно говоря, я не уверен, что проблема в этом.
...
Рейтинг: 0 / 0
15.06.2015, 17:51
    #38984157
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2018: unknown character в с++ + com VB.net
короче рулится через атрибуты класса типа:
Код: vbnet
1.
2.
3.
4.
5.
6.
    <System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.37595"), _
     System.SerializableAttribute(), _
     System.ComponentModel.DesignerCategoryAttribute("code"), _
     System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True), _
     System.Xml.Serialization.XmlRootAttribute([Namespace]:="", IsNullable:=False), System.Runtime.InteropServices.ComVisible(False)> _
    Partial Public Class ...


System.Runtime.InteropServices.ComVisible(False)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / error C2018: unknown character в с++ + com VB.net / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]