Member 12899279 Ответов: 2

Как отправить аргументы int WINAPI winmain()из int main()


i have this code and i want to use simple main like int main() is there anyway i can pass below int WINAPI WinMain() arguments from int main()
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow)


Что я уже пробовал:

int main(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow)

CPallini

Не могли бы вы уточнить? Какой у вас код и почему вы хотите вызвать WinMain в своем коде?

Member 12899279

получил это работает спасибо

2 Ответов

Рейтинг:
2

Rick York

Вообще говоря, WinMain является стандартной точкой входа для программы windows GUI, а main-точкой входа для программы интерфейса командной строки (CLI). Для программы CLI единственным параметром, представляющим интерес, является lpCmdLine, который представляет собой все аргументы в одной строке. Обычно аргументы разбираются на отдельные строки и передаются в виде массива основной функции вместе с числом, сколько их существует, с полным путем к исполняемой программе в нулевом слоте массива, как упоминал Грег.

Суть в том, что вы не можете просто передать аргументы, как вы просили. Это потребует некоторой работы, чтобы втиснуть аргументы в форму, с которой main может иметь дело. Кроме того, обычно никто не звонит в main. Если вы думаете, что вам это действительно нужно, то вы, скорее всего, будете действовать в соответствии с тем или иным заблуждением, и вам следует пересмотреть свои варианты.

Если вы работаете с MFC,вы все равно можете получить аргументы в формате argc, argv, как использует CLI. Если нет, то я так не думаю. Как бы то ни было, я думаю, что будет лучше, если вы измените свой вопрос, чтобы спросить о том, каковы ваши намерения на самом деле.


Rick York

Я повторюсь : "я думаю, что было бы лучше, если бы вы изменили свой вопрос, чтобы спросить о том, каковы ваши намерения на самом деле". не забудьте использовать теги кода вокруг вашего кода и сделать отступы правильно, чтобы люди могли легче читать его.

Рейтинг:
0

Greg Utas

Аргументы для main определяются стандартами:

int main(int argc, char* argv[])
argc это размер самого argv массив, содержащий набор строк языка Си (заканчивающийся нулем). Первая строка будет представлять собой путь к каталогу, из которого была запущена программа, заканчивающийся именем программы. .исполняемый сам файл.

Реализация, которая позволяет вызывать main или передать ему разные аргументы, которые не соответствовали бы стандартам. Я еще не пользовался WinMain, но я предполагаю, что ваш выбор состоит в том, чтобы либо использовать его, либо регулярно main.

Было бы также полезно знать, чего вы пытаетесь достичь.


Greg Utas

К сожалению, у меня нет опыта работы с WinMain и другими специфичными для Windows материалами в вашем коде. И ваш код не отформатирован и не прокомментирован, поэтому я сомневаюсь, что кто-то захочет тратить много времени на его просмотр. Похоже, что оба они похожи, поэтому я предлагаю вам пройти через каждый из них, строка за строкой, с отладчиком, чтобы увидеть, где они ведут себя по-разному.

Member 12899279

спасибо я только что прочитал откуда то в сети что в целях безопасности он не будет работать если запустится taskscheduler it...so единственный оставшийся вариант-это как-то передать эти аргументы, которые находятся в WinMain из main..но как я до сих пор не могу придумать никакого способа, так как я действительно не знаю, что делают эти параметры