Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Борланд C++ и команден ред CMD
http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=15801
Страница 1 от 1

Автор:  RM [ Съб Мар 10, 2018 3:44 pm ]
Заглавие:  Борланд C++ и команден ред CMD

Опитвам се да намеря инфо, как да пакетирам в мое екзе под Form друго такова което работи под команден ред.
Ако не е много нахално :D но трябва да мога и да го управлявам със CMD команди.
WinExec или нещо подобно.

Автор:  ike [ Съб Мар 10, 2018 4:50 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Малко трудно ти се разбира какво си написал. Опитай се да си представиш, че ние тук във форума не знаем какво става в главата ти.
Първо за пакетирането. Във .exe има ресурси, които се добавят със ресурсен скрипт. Подобно на иконите, курсорите и музичките при другите програми.
In Microsoft Windows, resources are read-only data embedded in EXE, DLL: https://en.wikipedia.org/wiki/Resource_(Windows)
След като го имаш, като ресурс съвсем тривиално е да го запишеш в temp и после да го старираш от там със пайп, например Echo Y | del *.*
Малко ме притесняват 2 неща.
1. Искаш да направиш някаква мизерия с това.
2. Ако можеш да програмираш, няма ли да ти е по-лесно да направиш тази функционалност в твоята програма, вместо да викаш външни програми?

Автор:  RM [ Съб Мар 10, 2018 5:50 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Имам до сега готов един HEX editor и чета и пиша през серийния интерфейс флаша на процесора. Страници, от старт адрес до краен адрес.
по 4 проводника +,- ,моде и ресет. Да но трябва да се записват тези данни от флаша като IntelHex .hex , .mot .s19 .bin. .eep
Hex и bin лесно. Но за другите си трябва писане на код. Имам и една дос програма под команден ред дето създава и преобразува много от използваните типове... Знам че може DLL с API функций . Но ехе не съм. Намирам примери с 7zip под команден ред ... но нещо не е много ясно описано.

-------------
Май това ще е по-трудния начин. Ще трябва да се отваря в нов процес да се чака да приключи....
Ще си напиша само за intelhex, байтовете като ми идват , брояча , броя байтове на ред, и сумата накрая...

Автор:  ike [ Съб Мар 10, 2018 6:01 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Ами първо пробвай твоята програма и дос програмата да ги сложиш в една папка.
Нека твоята програма първо генерира фаил flash.bin, и го flush-ни, за да си сигурен че е записан на диска и после стартирай
WinExec ("dosprogama.exe /s19 flash.bin flash.s19",0);
и виж какво ще стане.

Автор:  stefan63 [ Съб Мар 10, 2018 6:06 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

DOS програмата ти колко битова е - 16?
Ще може ли да се пусне на 64 Win?

Автор:  ike [ Съб Мар 10, 2018 6:10 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Ако е наистина досовска още по-лесно, ще извика досбокс и той си има autoexec секция в настройките
Цитат:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c c:\flash\
c:\
dosprogama.exe /s19 flash.bin flash.s19

Автор:  RM [ Съб Мар 10, 2018 6:16 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Няма да стане с няколко реда
Пробвах и със ShellExecute




Код:

// ExtArchiv.cpp : Defines the entry point for the application.
//

#include "Stdafx.h"
#include "Searching.h"
#include "SearthRar.h"
#include "ExtMessage.h"
#include "res\\Resource.h"

#define MAX_LOADSTRING 100

char szCommandLine[MAX_PATH];
char szPaw[MAX_LOADSTRING];

int APIENTRY ExtArchiv(HINSTANCE hInstance)
{
    STARTUPINFO start_info;

    ZeroMemory( & start_info , sizeof( start_info) );
    start_info.cb = sizeof(start_info);

    PROCESS_INFORMATION proc_info;

    ZeroMemory( & proc_info , sizeof( proc_info ) );
   
    strcat(lpData, " x "); //дополняем командную строку где "x" -извлечь файлы из архива с полными путями
    LoadString(hInstance, IDS_STRING_PAW, szPaw, MAX_LOADSTRING);

    do
    {
        NumFiles --;
        strcpy(szCommandLine, lpData);
        strcat(szCommandLine, szPaw); //add "
        strcat(szCommandLine, szFileArray[NumFiles]);
        strcat(szCommandLine, szPaw); //add "
        strcat(szCommandLine, " *.* ");

        strcat(szCommandLine, szPaw); //add "
        strncat(szCommandLine, szFileArray[NumFiles], strlen(szFileArray[NumFiles]) - 4);
        strcat(szCommandLine, "\\");
        strcat(szCommandLine, szPaw); //add "

        if(!CreateProcess(NULL, szCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &start_info, &proc_info))
        {
            ExtMessage(GetLastError(), "", MB_OK | MB_ICONHAND);
            return FALSE;
        }

        WaitForSingleObject(proc_info.hProcess, INFINITE);
        CloseHandle(proc_info.hProcess);
    }
    while (NumFiles != 0);

    return TRUE;
}

Автор:  syscop [ Съб Мар 10, 2018 6:19 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Можеш ли да прекомпилираш дос програмата за windows ?

Автор:  ike [ Съб Мар 10, 2018 6:28 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Малко въпроси:
1. На каква операциона система си? XP, 7, 8 или 10?
2. Програмата която преобразува типовете фаилове досовска ли е или е уиндоуска с команден интерфейс?
3. Ръчно как точно стартираш програмата за преобразуване на типовете файлове?

Автор:  RM [ Съб Мар 10, 2018 9:58 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

има сорс код за линокс
Това мисля че е компилиран за Win под команден ред
https://sourceforge.net/projects/srecord/files/srecord-win32/
Има примери
http://srecord.sourceforge.net/man/man1/srec_examples.html
Кеил го дават за пример с техния компилатор
http://www.keil.com/support/docs/276.htm

стартирам srec_cat.exe
:( И не се получава. :(

Автор:  ike [ Съб Мар 10, 2018 10:36 pm ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Значи единствено ти трябва да стартираш
"srec_cat @fred.txt" но не знам дали символа @ не фрапира кавичките. Провери какъв е ескейп сикуенса за @ символа.
Когато казваш: " стартирам srec_cat.exe :( И не се получава. :(" какво имаш в предвид?
От CMD прозореца ли не се получава или като го викаш с WinExec от твоята програма или когато го викаш с WinExec от твоята програма и има @ символа?
Моляте давай по-подробна информация. Не всички те гледаме какви ги правиш и какво точно не ти се получава.

Автор:  RM [ Нед Мар 11, 2018 7:36 am ]
Заглавие:  Re: Борланд C++ и команден ред CMD

Когато го стартирах чрез run->cmd и прозореца стана администратор, под команден ред всичко е OK.

Страница 1 от 1 Часовете са според зоната UTC + 1 час [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/