主函数是一个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来运行它
//启动时候追加啊,和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来运行它
//启动时候追加啊,和main是一样的启动方式
IDE里面设置是因为你用IDE来运行它
#3
回2楼:就是说Release了以后,运行它,然后弹出一个命令行的窗口,然后输入Embedding,是这样吗?
#4
在哪里表明他要弹出命令行呢
#5
来人啊!着火了!!!!!!!
#6
这个是运行程序带的参数,类似main(int agc,char* agrv)
#7
6楼大哥能说得详细一些吗?55555
#8
什么呀
#9
不知,帮顶