关于win32的菜鸟问题,希望菜鸟都进来看看你们遇到过没?高手来解答啊!

时间:2022-12-16 21:29:30
leader让看一段代码:
主函数是一个winmain,代码如下:
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){}
一编译提示success,但整个程序就这么悄无声息的在运行,也不弹出个form或者command line什么的,可是winmain里面也有对输入做出判断的代码啊!
如下:
if (!CmdLineContains("Embedding"))
{
MessageBox(NULL, "You must start this application by "
"OLE.  It cannot be run stand alone.", "Bank error", MB_ICONEXCLAMATION);
return FALSE;
}

函数CmdLineContains定义:
BOOL CmdLineContains(LPSTR szString)
{
for (int i = 1; i < __argc; i++)
{
LPSTR pszParam = __argv[i];
BOOL bFlag = FALSE;
BOOL bLast = ((i + 1) == __argc);
if (pszParam[0] == '-' || pszParam[0] == '/')
{
++pszParam;
}

if (lstrcmpA(pszParam, szString) == 0)
{
return TRUE;
}

}
return FALSE;
}
可是根本就没有能输入的地方啊!

然后叫来leader,被骂了一通,只见他打开工程(我用的是vs2005)的属性,在command arguments里面加上Embedding,说参数是从这里进去的,我直接崩溃了。
小弟从没做过win32编程,我以为所有程序的入口只能是从form或从命令行输入呢!希望大侠告诉下,leader操作的是在干吗?如果程序都要从哪里输入的话,以后Realease了怎么办?去哪里找那个command arguments啊?
补充:为什么我一建win32工程就一大堆文件,而这个工程就一个主文件呢?

9 个解决方案

#1


int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){} 行的LPSTR lpCmdLine

#2


以后Realease了怎么办?去哪里找那个command arguments啊?
//启动时候追加啊,和main是一样的启动方式

IDE里面设置是因为你用IDE来运行它

#3


回2楼:就是说Release了以后,运行它,然后弹出一个命令行的窗口,然后输入Embedding,是这样吗?

#4


在哪里表明他要弹出命令行呢

#5


来人啊!着火了!!!!!!!

#6


这个是运行程序带的参数,类似main(int agc,char* agrv)

#7


6楼大哥能说得详细一些吗?55555

#8


什么呀

#9


不知,帮顶

#1


int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){} 行的LPSTR lpCmdLine

#2


以后Realease了怎么办?去哪里找那个command arguments啊?
//启动时候追加啊,和main是一样的启动方式

IDE里面设置是因为你用IDE来运行它

#3


回2楼:就是说Release了以后,运行它,然后弹出一个命令行的窗口,然后输入Embedding,是这样吗?

#4


在哪里表明他要弹出命令行呢

#5


来人啊!着火了!!!!!!!

#6


这个是运行程序带的参数,类似main(int agc,char* agrv)

#7


6楼大哥能说得详细一些吗?55555

#8


什么呀

#9


不知,帮顶