我想用C++打印一些东西。但是,我遇到了一个奇怪的错误,给我留下无能,我使用下面的代码:C++:怪异的分割错误
PRINTDLG pd;
ZeroMemory(&pd, sizeof(pd));
pd.lStructSize = sizeof(pd);
pd.Flags = PD_RETURNDEFAULT;
PrintDlg(&pd);
// Set landscape
DEVMODE* pDevMode = (DEVMODE*)GlobalLock(pd.hDevMode);
pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
pd.hwndOwner = mainWindow;
pd.Flags = PD_RETURNDC | PD_NOSELECTION;
GlobalUnlock(pd.hDevMode);
if (PrintDlg(&pd))
{
DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Test Print";
di.lpszOutput = (LPTSTR)NULL;
di.fwType = 0;
//start printing
StartDoc(pd.hDC, &di);
int a;
int b;
int c;
int d;
int e;
int f;
// int g; // Uncomment this -> CRASH
EndDoc(pd.hDC);
DeleteDC(pd.hDC);
}
else
{
cout << "Did not print: " << CommDlgExtendedError() << endl;
}
的那一刻我去掉“诠释克;”我得到一个:“程序收到的信号SIGSEGV,分段错误。”我使用codeblocks和mingw编译器,都是最新的。什么可能导致这个?
*其中*是否出现段错误? – jalf 2010-06-10 11:45:10
你可以使用调试器吗? – 2010-06-10 11:48:46
没有给出行号,调用堆栈只给出这个错误:ntdll!RtlLookupAtomInAtomTable() – Kleas 2010-06-10 11:49:36