- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
// winnt.h
typedef wchar_t WCHAR;
typedef WCHAR *PWCHAR,*LPWCH,*PWCH;
// winldap.h
#define ldap_init ldap_initW
WINLDAPAPI LDAP *LDAPAPI ldap_initW(const PWCHAR HostName,ULONG PortNumber);
// my code
// auto ldap = ldap_init(L"ldap.address", LDAP_PORT); // 1
PWCHAR hostName = (WCHAR*)(L"ldap.address"); // 2
auto ldap = ldap_init(hostName, LDAP_PORT);
// auto hostName = L"ldap.address"; // 3
// auto ldap = ldap_init(hostName, LDAP_PORT);
Вариант (1) выдает warning. Вариант (2) работает ожидаемо. Вариант (3) ожидаемо не компилится. Вопрос: и почему это я не люблю winapi?
Gay 07.11.2016 12:21 # −2
gost 07.11.2016 20:07 # +4
Gay 08.11.2016 06:11 # +1
barop 17.11.2016 14:26 # +3
Soul_re@ver 07.11.2016 12:41 # 0
Хм. Можно сделать метушню, которая будет делать тип со снятым const с элементов массива. Затем завернуть её в макрос.
И пользоваться как-то так:
Antervis 07.11.2016 12:53 # 0
roman-kashitsyn 07.11.2016 12:59 # 0
P.S. Никогда не понимал, зачем все эти PWCHAR, LPWCH, PWCH, etc.
barop 07.11.2016 13:09 # −65
Чтоб со звездочкой не ибаца.
Soul_re@ver 07.11.2016 13:11 # +5
roman-kashitsyn 07.11.2016 13:16 # +2
О да, одну звёздочку написать гораздо труднее, чем букву P. Более того, со звёздочкой можно написать
const WCHAR *str, а тупой алиас PWCHAR не получится использовать с const (const PWCHAR str означает уже совсем другое — константный указатель на неконстантную строку).
В общем, лютая тупость.
Soul_re@ver 07.11.2016 13:19 # +5
WCHAR, CWCHAR, PWCHAR, CPWCHAR, PCWCHAR, CPCWCHAR, VWCHAR, CVWCHAR, PVWCHAR, PCVWCHAR, VPWCHAR, VPCWCHAR, VPVWCHAR, VPCVWCHAR, CVPWCHAR, CVPСWCHAR, CVPVWCHAR, CVPCVWCHAR.
Вроде все назвал.
Soul_re@ver 07.11.2016 13:26 # +5
bormand 07.11.2016 20:17 # +4
Antervis 08.11.2016 05:39 # +1
barop 07.11.2016 13:55 # −64
roman-kashitsyn 07.11.2016 15:38 # −2
Microsoft Research is doing a good job!
Microsoft Hardware тоже обычно молодцы.
Gay 07.11.2016 16:33 # +1
Job, который blow?
bormand 07.11.2016 20:31 # +3
На днях полапал Майкрософт Натурал, которая эргономичная типа, вроде оригинальная... Основные кнопки норм, но пробел вообще отвратный, одной рукой прожимался со скрипом. Знакомый, который такую клаву юзает, сказал, что пробел на ней надо разрабатывать...
Короче не впечатлило.
roman-kashitsyn 07.11.2016 20:33 # +1
Ок, будем считать, что Microsoft Hardware тоже говно.
Soul_re@ver 08.11.2016 00:46 # 0
bormand 08.11.2016 00:49 # +2
bormand 07.11.2016 20:59 # +2
Майки бесят тем, что их вечно шатает из стороны в сторону... Умудряются понаплодить кучу технологий, перехреначить API и UI, распиарить их и через пару лет забальзамировать, периодически подпирая костылями.
inkanus-gray 07.11.2016 21:29 # +2
На эту тему: https://en.wikipedia.org/wiki/Vaporware
Вейперы и до программирования добрались.
barop 17.11.2016 14:25 # 0
Antervis 07.11.2016 13:17 # +1
gost 07.11.2016 20:13 # +1
Дак существенная часть WinAPI тянется ещё из времён Windows 3.0. Тогда это и было оправдано. А сейчас взять и выкинуть это дерьмо Микрософт уже не может - обратная совместимость-с. Да и работы там столько, что Авгиевы конюшни - просто курорт.
roman-kashitsyn 07.11.2016 20:29 # 0
Чем?
bormand 07.11.2016 20:32 # +2
barop 07.11.2016 22:27 # −63
bormand 07.11.2016 23:19 # +1
Far pointers was used in windows 3.x (16-bit). But new versions wants to remain source-compatible with 3.x by some degree, so they used same macro (AFAIK expanded to far ptr on 3.x and to normal ptrs on newer platforms)...
Sorry for reply in english. I'm too lazy to learn how to switch layouts in XFCE.
bormand 07.11.2016 23:22 # 0
BCEM_noxyu 07.11.2016 23:36 # 0
Antervis 08.11.2016 05:42 # +3
dxd 08.11.2016 08:40 # +3
I hope you still remember how to write xorg.conf.
inkanus-gray 07.11.2016 23:30 # +3
Напоминает английский язык, в котором номинально существуют части речи вроде причастий, деепричастий, герундиев, герундивов, а фактически в современном языке они по форме неотличимы от глагола.
barop 08.11.2016 03:30 # 0
там были 64битные поинтеры вроде, но там было как-то с ними совсем сложно, и потому MS запретил PAE в консьюмерских версиях винды.
PAE были только в серверах.
Ну и конечно тока для kernel mode
barop 07.11.2016 23:32 # −63
bormand 07.11.2016 23:35 # 0
Ubuntu causes brain damage, lol.
And 800x600 video mode upsets me much more than keyboard layouts...
barop 07.11.2016 23:40 # −62
bormand 07.11.2016 23:44 # 0
BCEM_noxyu 07.11.2016 23:49 # +1
bormand 07.11.2016 23:50 # 0
1024-- 08.11.2016 00:33 # +5
roman-kashitsyn 08.11.2016 02:00 # +3
bormand 08.11.2016 06:42 # 0
Познание себя?
З.Ы. Ой, censory... Т.е. само-цензура...
Gay 08.11.2016 06:50 # +1
1024-- 08.11.2016 00:29 # +6
> Sorry for reply in english. I'm too lazy to learn how to switch layouts in XFCE.
It's obvious that you can paste other peoples' answers here. So why don't you reuse the letters from their messages?
Antervis 08.11.2016 05:44 # +3
guest 08.11.2016 00:34 # −1
guest 08.11.2016 00:35 # −1
bormand 08.11.2016 00:51 # 0
barop 08.11.2016 02:06 # 0
просто нуоче медленно, ибо через бивис
4e1 08.11.2016 00:50 # +2
use google.com, type phrases using russian layout, in search results google will convert letters
BCEM_noxyu 08.11.2016 03:25 # +1
http://winrus.com/klava.htm
(e ytuj tcnm gctdljybv porusski.net).
barop 08.11.2016 03:28 # −1
Данные толще 64K нужно дробить, иначе адресная арифметика уроборосится.
Правда у борланда были huge, не знаю были ли у Microsoft C