- 1
- 2
- 3
- 4
- 5
- 6
- 7
HRESULT SomeClass::GetVersion(std::wstring& version)
{
CComBSTR versionBstr;
m_Interface->get_Version(&versionBstr);
version = std::move(std::wstring((_bstr_t)versionBstr, versionBstr.Length()));
return S_OK;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
HRESULT SomeClass::GetVersion(std::wstring& version)
{
CComBSTR versionBstr;
m_Interface->get_Version(&versionBstr);
version = std::move(std::wstring((_bstr_t)versionBstr, versionBstr.Length()));
return S_OK;
}
Как показать в одном методе (не)знание move семантики, правил приведения типов и COM фреймворка
ivan_0110 18.01.2019 12:08 # 0
Hu3KoypoBHeBblunemyx 23.02.2019 15:49 # 0
guest8 23.02.2019 15:52 # −999
gueest8 18.01.2019 15:58 # +1
Elvenfighter 18.01.2019 18:19 # 0
Такого не знать.
guest8 18.01.2019 18:21 # −999
Lorip1971 18.01.2019 19:11 # 0
gueest8 18.01.2019 19:14 # +1
Как классы в реестре регистрируются? Как сервера создаются отдельно стоящие или внутри процесса? Как через IDL клиенты создаются?
Lorip1971 18.01.2019 19:17 # −1
по этому я за линух и форки.
bormand 18.01.2019 19:22 # +3
Взял "пхп" файл, положил в папку, которую "апач" видит и всё готово.
Поэтому я за "пхп".
guest8 18.01.2019 19:22 # −999
bormand 18.01.2019 19:24 # 0
Ну да, процессы понятнее и безопаснее этих ваших "тредов".
guest8 18.01.2019 19:26 # −999
gost 18.01.2019 19:32 # 0
Разве? Процесс (в виндах) — это же просто обёртка над группой потоков, как он может быть легче?
guest8 18.01.2019 19:35 # −999
bormand 18.01.2019 19:36 # 0
Между процессами же шарятся только те данные, которые ты реально хочешь расшарить.
Но победили унылые и менее гибкие треды.
guest8 18.01.2019 19:40 # −999
Lorip1971 18.01.2019 19:43 # 0
guest8 18.01.2019 19:47 # −999
bormand 18.01.2019 19:49 # 0
Но ведь это не из-за того, что в венде треды хорошие. Там просто процессы очень медленно стартуют. Форк, конечно, очень странная идея, но позволяет запускать процессы уже прогретыми.
А тред, по сути, тот же форк, только вся память в режиме shared.
guest8 18.01.2019 19:51 # −999
bormand 18.01.2019 19:55 # 0
> хочет видеть процессы
А видит там вкладки хрома.
guest8 18.01.2019 20:06 # −999
bormand 18.01.2019 20:11 # 0
Х.з., добавить exec'нутым какой-нибудь флажок?
Я вот с процессами основную траблу вижу в управлении памятью. Если на 64-битке ещё можно себе позволить отдать половину пространства под shared и половину под private, то на 32-битке с этим будет боль. А shared память хотелось бы видеть по одинаковым адресам во всех процессах, которые её юзают.
j123123 19.01.2019 13:38 # 0
Используй линупсовый системный вызов clone для максимальной гибкости:
> clone() creates a new process, in a manner similar to fork(2).
> This page describes both the glibc clone() wrapper function and the underlying system call on which it is based. The main text describes the wrapper function; the differences for the raw system call are described toward the end of this page.
> Unlike fork(2), clone() allows the child process to share parts of its execution context with the calling process, such as the virtual address space, the table of file descriptors, and the table of signal handlers. (Note that on this manual page, "calling process" normally corresponds to "parent process". But see the description of CLONE_PARENT below.)
В glibc для Linux эти pthread-ы как раз через clone() и реализованы
bormand 19.01.2019 15:03 # 0
guest8 19.01.2019 15:39 # −999
guest8 19.01.2019 15:39 # −999
HoBorogHuu_nemyx 19.01.2019 16:04 # 0
gueest8 20.01.2019 03:33 # 0
это же SUS
Lorip1971 18.01.2019 19:31 # 0
gost 18.01.2019 19:35 # 0
6E3yMHblu_nemyx 23.02.2019 14:25 # +1
bormand 18.01.2019 19:18 # 0
guest8 18.01.2019 19:23 # −999
bormand 18.01.2019 19:24 # 0
guest8 18.01.2019 19:28 # −999
Lorip1971 18.01.2019 19:38 # 0
зы: а крузис и батлфилд где запускать-то?
bormand 18.01.2019 19:42 # 0
guest8 23.02.2019 16:57 # −999
guest8 18.01.2019 19:42 # −999
Lorip1971 18.01.2019 19:47 # 0
guest8 18.01.2019 19:49 # −999
Lorip1971 18.01.2019 19:50 # 0
6E3yMHblu_nemyx 23.02.2019 14:25 # 0
bormand 18.01.2019 20:04 # +1
irq[1] = function() { ... }
guest8 18.01.2019 20:08 # −999
Hu3KoypoBHeBblunemyx 23.02.2019 16:56 # 0
guest8 23.02.2019 16:57 # −999
Hu3KoypoBHeBblunemyx 23.02.2019 17:02 # 0
bormand 23.02.2019 17:04 # 0
guest8 23.02.2019 17:08 # −999
guest8 23.02.2019 17:07 # −999
Hu3KoypoBHeBblunemyx 23.02.2019 17:42 # 0
bormand 23.02.2019 17:45 # 0
Hu3KoypoBHeBblunemyx 23.02.2019 17:46 # 0
CnEPMOBOP 23.02.2019 21:59 # 0
guest8 23.02.2019 14:03 # −999