@ProCxx

Страница 2286 из 2477
Friedrich
17.08.2018
08:59:21
А, ок, хорошо сделали.

Nikita
17.08.2018
10:37:28
#chatlist

или как там

Sergey
17.08.2018
14:04:39
Скорее всего, не по теме, кто-нибудь может подсказать, как p2p работает через nat? Мб я вопрос неправильно ставлю или еще чего-то не понял. Хотя бы подскажите плз, что почитать можно про это

Google
Sergey
17.08.2018
14:11:56
Спасибо большое) то что нужно

Stolyarchuk
17.08.2018
14:29:04
STUN
Работает без стуна.

Бред

yuri
17.08.2018
14:30:17
Абстрактный p2p через абстрактный нат.

Anton
17.08.2018
14:38:36
Вообще есть несколько типов реализации ната (4), некоторые не позволяют прямого соединения...

Василий
17.08.2018
19:19:56
Всем привет. Может кто помочь. Я не c++ разработчик, возникла проблема. Есть библиотека на C++, которая использует СДК, т.е. сама библиотека - плагин, добавляющая поддержку C#. Так вот проблема в том, что в сдк есть метод: virtual void SetName(const std::string& name); Я из C# передаю в эту либу указатель на строку из C#, которая приходит как: char *name Проблема в том, что это дело работает с латиницей, но принимать русские символы - отказывается, вместо них - вопросики) Есть варианты помощи?

Alex Фэils?︙
17.08.2018
19:21:32
На стороне шарпа надо задать функции кодировку строки [Charset = Charset.Ascii] / или другую

Перечисление CharSet (System.Runtime.InteropServices) msdn.microsoft.com Developer Network Developer Network Developer. Подписки MSDN. Перечисление CharSet. .NET Framework (current version). Другие версии. Например, по умолчанию C# помечает все методы и типы в качестве Ansi.

Василий
17.08.2018
19:23:30
пробовал, вначале думал юникод, но насколько правильно понял, то для юникода надо wchar_t использовать, вместо char

Таким образом идет импорт методов: [DllImport("CSharpPlugin", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] public static extern IntPtr GetName(ushort blipId); [DllImport("CSharpPlugin", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] public static extern bool SetName(ushort blipId, IntPtr name); А указатель на текст: Marshal.StringToHGlobalAnsi(name);

Google
Arseny
17.08.2018
19:28:57
Но ведь если ansi, то точно проблемы с русским

Василий
17.08.2018
19:30:03
с wchar_t все было хорошо, единственная проблема была в том, чтобы запихнуть в метод. который принимает const std::string& вот это не получалось

Василий
17.08.2018
19:30:56
это метод сдк, который не мой)

Alex Фэils?︙
17.08.2018
19:31:43
Тогда надо строить wstring_view из name.data()

Надо еще в дебагнере проверить, сырой каст в wchar_t* напичатает ли строчку

Василий
17.08.2018
19:32:46
да, печатал строку хорошо

Alex Фэils?︙
17.08.2018
19:33:21
да, печатал строку хорошо
Тогда можно сделать как я

Василий
17.08.2018
19:33:29
можно это поподробнее?)

Тогда надо строить wstring_view из name.data()

Alex Фэils?︙
17.08.2018
19:35:05
ну, встринг_вью конструируется из wchar_t *. Просто можно закинуть в конструктор реинтерпрет_каст из const char * name.data()

Василий
17.08.2018
19:37:11
хорошо) спасибо, буду пробовать

Arseny
17.08.2018
19:39:35
ну, встринг_вью конструируется из wchar_t *. Просто можно закинуть в конструктор реинтерпрет_каст из const char * name.data()
Но принимающая функция ничего адекватного не сможет сделать, если wchar_t* просто к char* скастовать. Или я не так понял?

Constantine
17.08.2018
19:40:21
да, печатал строку хорошо
Нужно знать, что думает принимающий по поводу std::string. Кодировка принимающей СДК из сигнатуры метода в С++ никак не следует.

Василий
17.08.2018
19:41:16
Всем еще раз спасибо, буду крутить)

Anatoly
17.08.2018
21:01:20
Google
Friedrich
18.08.2018
05:38:49
Ты вот с этим разберись, а дальше уже дело техники. Ну и они там в SDK шутники, конечно — выставили наружу в API класс, у которого нет гарантий по бинарной совместимости. Вообще хер знает, как его передавать корректно.

Nik
18.08.2018
07:33:00
Слова API, класс и бинарная совместимость не должны находиться в одном предложении. Если нужна API и бинарная совместимость, то добро пожаловать в plain C интерфейс.

Дед Пегас
18.08.2018
13:21:33
Без вареза ИТТ

Alexandr
18.08.2018
16:46:50
чем плейн си поможет?
тем, что нет декорации имен

Nik
18.08.2018
21:37:31
Сильно меньше. Если специально херней не страдать конечно.

Ilia
18.08.2018
22:10:29
Сильно меньше. Если специально херней не страдать конечно.
Увы, если подразумеваемой тобой хернёй не страдать, проблем будет ещё больше, чем если страдать

Страница 2286 из 2477