На свежем воздухе и работается лучше. Первый опыт переноса офиса на природу успешно завершен. Коммуникации подключены, поставки провизии осуществлены, роли розданы, небо открыто.
В предвкушении второго этапа.
Велкам.
mentalis et praesentia
На свежем воздухе и работается лучше. Первый опыт переноса офиса на природу успешно завершен. Коммуникации подключены, поставки провизии осуществлены, роли розданы, небо открыто.
В предвкушении второго этапа.
Велкам.
Внезапно переехал на новый адрес. Если Вас сюда средиректило с прежнего – все в порядке, это не рыба.
На память (особенно если трюки с 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();
}
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; } };
Чудо батничек на память.
------------------------------
@echo off
echo Build All : static - optimized - /MD
bjam toolset=msvc-9.0 stdlib=native rtti=on inlining=full exception-handling=on optimization=speed variant=release threading=multi link=static runtime-link=shared runtime-debugging=off debug-symbols=off
-------------------------------
Соберет буст в виде статических библиотек с максимальной оптимизацией и опцией MD (link=static runtime-link=shared). Скопировать в .bat файл, положить рядом с bjam (о нем я уже писал).
Соответсвие настроек буста и флагов msvc:
/ML : runtime-debugging=off runtime-link=static threading=single
/MLd : runtime-debugging=on runtime-link=static threading=single
/MT : runtime-debugging=off runtime-link=static threading=multi
/MTd : runtime-debugging=on runtime-link=static threading=multi
/MD : runtime-debugging=off runtime-link=shared threading=multi
/MDd : runtime-debugging=on runtime-link=shared threading=multi