Очень очень занятно и в тему.
Сегодня мне тоже посчастливилось говорить умные вещи и растирать пальцами мел. Удивительно.
среда, 19 октября 2011 г.
Algorithmic Prophecy
пятница, 10 июня 2011 г.
DACHA YACHTA HOMO
На свежем воздухе и работается лучше. Первый опыт переноса офиса на природу успешно завершен. Коммуникации подключены, поставки провизии осуществлены, роли розданы, небо открыто.
В предвкушении второго этапа.
Велкам.
вторник, 3 мая 2011 г.
arroy.info
Внезапно переехал на новый адрес. Если Вас сюда средиректило с прежнего – все в порядке, это не рыба.
суббота, 23 апреля 2011 г.
13D LOVES YOU!
вторник, 22 февраля 2011 г.
Передача строки из C++ в C#
На память (особенно если трюки с char* не принесли должного результата):
С++ dll :
extern "C" __declspec(dllexport) void __stdcall getLongString(char str[], int str_length)
{
strncpy(str,"long long string",str_length);
result[str_length-1]='\0';
}
[DllImport(“c++_dll_name”, CharSet = CharSet.None)]
public static extern void getLongString(StringBuilder str, int str_length);
public static string get_long_string()
{
StringBuilder sb = new StringBuilder(260);
getLongString(sb,sb.Capacity);
return sb.ToString();
}
пятница, 7 января 2011 г.
C++ знакомится с C#
Создаем dll на плюсах (обычная, не /clr!), где обьявляем экспортируемые функции:
extern "C" __declspec(dllexport) int __stdcall Plus(int a, int b) { return a+b; }
Далее в шарповом коде создаем небольшой классик, экспортируем функцию и оборачиваем ее для удобства, вот так:
class Wrapper { [DllImport("Wrapper.dll")] static extern int Plus(int a, int b); public static int plus(int a, int b) { try { return Plus(a,b); } catch (DllNotFoundException e) { Console.WriteLine(e.ToString()); } catch (EntryPointNotFoundException e) { Console.WriteLine(e.ToString()); } return 0; } };
int result = Wrapper.plus(66,11);