
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

yuri
17.08.2018
14:05:46

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

Stolyarchuk
17.08.2018
14:29:04
Бред

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

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

Xessao
17.08.2018
16:40:25

Василий
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

Alex Фэils?︙
17.08.2018
19:27:35

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

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

Alex Фэils?︙
17.08.2018
19:30:22

Василий
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
да, печатал строку хорошо

Arseny
17.08.2018
19:33:15

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

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

Arseny
17.08.2018
19:40:57

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

Anatoly
17.08.2018
21:01:20

Friedrich
18.08.2018
05:37:22

Google

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

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

Friedrich
18.08.2018
07:33:19

Stanislav
18.08.2018
08:05:14

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

Alexandr
18.08.2018
16:46:50

Ilia
18.08.2018
21:34:34

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

Ilia
18.08.2018
22:10:29