olekot писал(а):
88676418...Напрасный наезд с моей стороны на ембу.
Да ладно, у них есть более непонятные моменты -
вот сам в RAD Studio 12.2 натолкнулся. Причем большинство компиляторов работает классически, только их
bcc64x "по новоому" ! По моему это неправильно.
Вот я писал, как у них в
bcc64x работает.
Да и новинка - нашел глючёк в
RAD Studio 12.3. Стал играться с вашим кодом и нашел.
- Написал такой код:
Код:
#include <iostream>
int main(int argc, char *argv[])
{
std::cout << "argc = " << argc << std::endl;
for (int I = 0; I < argc; ++I)
std::cout << "argv[" << I << "] = " << argv[I] << std::endl;
return 0;
}
- Да и возьми - положи его в каталог "d:\dir with spaces"
И что-же видим ( при запуске из IDE, с одним параметром - 255 ):
- Для платформы Win32:
Код:
argc = 2
argv[0] = D:\dir with spaces\.\Win32\Debug\app.exe
argv[1] = 255
- Для платформы Win64:
Код:
argc = 4
argv[0] = D:\dir with spaces\Win64\Debug\app.exe
argv[1] = with
argv[2] = spaces\Win64\Debug\app.exe
argv[3] = 255
- Для платформы Win64 (modern):
Код:
argc = 4
argv[0] = D:\dir
argv[1] = with
argv[2] = spaces\Win64x\Debug\app.exe
argv[3] = 255
Хоть стой, хоть падай

. Три варианта и все 3 разные !!!

К счастью, в 13 версии, уже поправаили, но опять, как-то криво - в Win32 в пути присутствует точка, а в Win64, Win64x, пути склеили красиво - без точки ( см. параметр argv[0] ) !
Единообразно сделать, для всех платформ, видно не судьба !