long lVal = 0L;
long *pVal = NULL;
pVal = &lVal;和long lVal = 0L;
long *pVal;
pVal = &lVal;为什么结果会不一样?或许用法本身有问题?
long *pVal = NULL;
pVal = &lVal;和long lVal = 0L;
long *pVal;
pVal = &lVal;为什么结果会不一样?或许用法本身有问题?
调试欢乐多
long Data = 3L;
pData = &Data;
strtmp = _T("24, 24, 30");
BSTR bCharacterSize;
bCharacterSize = strtmp.AllocSysString();
::g_pPrinter->DirectIO(28L, pData, &bCharacterSize);
::SysFreeString(bCharacterSize);
其中
long XXX::DirectIO(long Command, long* pData, BSTR* pString)
{
long result;
static BYTE parms[] =
VTS_I4 VTS_PI4 VTS_PBSTR;
InvokeHelper(0x24, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
Command, pData, pString);
return result;
}
long *pData = NULL;
long Data = 3L;
pData = &Data;
则运行中就会报错
long Data = 3L;
strtmp = _T("24, 24, 30");
BSTR bCharacterSize;
bCharacterSize = strtmp.AllocSysString();
::g_pPrinter->DirectIO(28L, &Data, &bCharacterSize);
::SysFreeString(bCharacterSize);其中
long XXX::DirectIO(long Command, long* pData, BSTR* pString)
{
long result;
static BYTE parms[] =
VTS_I4 VTS_PI4 VTS_PBSTR;
InvokeHelper(0x24, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
Command, pData, pString);
return result;
}