Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
July 27, 2003 SC/DMC Porting problem | ||||
---|---|---|---|---|
| ||||
Thinking of finally switching from SC7.5 to DMC++... In the meantime can anyone tell me why pointer = new char[size]; compiles without problem in SC but produces error '?_P(unsigned, char *, int)' when compiled in exactly the same context with DMC++. Secondly the IDDE compiler setting 'enable new[] delete[] overloading' seems to toggle itself to 'off' during compilation even when it has been set to 'on'. Thanks for any suggestions Richard |
July 27, 2003 Re: SC/DMC Porting problem | ||||
---|---|---|---|---|
| ||||
Posted in reply to Richard M Thomas | "Richard M Thomas" <rthomas@mat.ethz.ch> wrote in message news:3F24025C.3060203@mat.ethz.ch... > Thinking of finally switching from SC7.5 to DMC++... In the meantime can anyone tell me why > > pointer = new char[size]; > > compiles without problem in SC but produces > > error '?_P(unsigned, char *, int)' > > when compiled in exactly the same context with DMC++. Can you post a complete example? Thanks! |
July 28, 2003 Re: SC/DMC Porting problem | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | Thanks for the response Walter. I've seen the same error before and given up on it. The present occurence appears in a DIB handling class that I 'lifted' and was originally written in VC, I believe. Not sure how much code you need - there's more if you want it - just the offending function for now. -- Cheers Richard (header ... LPBITMAPINFOHEADER m_lpBMIH; ) CDib::CDib(CSize size, int nBitCount) { m_hFile = NULL; m_hBitmap = NULL; m_hPalette = NULL; m_nBmihAlloc = m_nImageAlloc = noAlloc; Empty(); ComputePaletteSize(nBitCount); m_lpBMIH = (LPBITMAPINFOHEADER) new char[sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorTableEntries]; //-->ERROR m_nBmihAlloc = crtAlloc; m_lpBMIH->biSize = sizeof(BITMAPINFOHEADER); m_lpBMIH->biWidth = size.cx; m_lpBMIH->biHeight = size.cy; m_lpBMIH->biPlanes = 1; m_lpBMIH->biBitCount = nBitCount; m_lpBMIH->biCompression = BI_RGB; m_lpBMIH->biSizeImage = 0; m_lpBMIH->biXPelsPerMeter = 0; m_lpBMIH->biYPelsPerMeter = 0; m_lpBMIH->biClrUsed = m_nColorTableEntries; m_lpBMIH->biClrImportant = m_nColorTableEntries; ComputeMetrics(); memset(m_lpvColorTable, 0, sizeof(RGBQUAD) * m_nColorTableEntries); m_lpImage = NULL; // no data yet } |
July 29, 2003 Re: SC/DMC Porting problem | ||||
---|---|---|---|---|
| ||||
Posted in reply to Richard M Thomas | I need enough to be able to compile it and reproduce the error message. Thanks, -Walter BTW, what memory model are you using? "Richard M Thomas" <rthomas@mat.ethz.ch> wrote in message news:3F25935A.9060500@mat.ethz.ch... > Thanks for the response Walter. > I've seen the same error before and given up on it. The present > occurence appears in a DIB handling class that I 'lifted' and was > originally written in VC, I believe. Not sure how much code you need - > there's more if you want it - just the offending function for now. > -- > Cheers > Richard > > (header ... > LPBITMAPINFOHEADER m_lpBMIH; ) > > CDib::CDib(CSize size, int nBitCount) > { > m_hFile = NULL; > m_hBitmap = NULL; > m_hPalette = NULL; > m_nBmihAlloc = m_nImageAlloc = noAlloc; > Empty(); > ComputePaletteSize(nBitCount); > m_lpBMIH = (LPBITMAPINFOHEADER) new > char[sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * > m_nColorTableEntries]; > //-->ERROR > m_nBmihAlloc = crtAlloc; > m_lpBMIH->biSize = sizeof(BITMAPINFOHEADER); > m_lpBMIH->biWidth = size.cx; > m_lpBMIH->biHeight = size.cy; > m_lpBMIH->biPlanes = 1; > m_lpBMIH->biBitCount = nBitCount; > m_lpBMIH->biCompression = BI_RGB; > m_lpBMIH->biSizeImage = 0; > m_lpBMIH->biXPelsPerMeter = 0; > m_lpBMIH->biYPelsPerMeter = 0; > m_lpBMIH->biClrUsed = m_nColorTableEntries; > m_lpBMIH->biClrImportant = m_nColorTableEntries; > ComputeMetrics(); > memset(m_lpvColorTable, 0, sizeof(RGBQUAD) * m_nColorTableEntries); > m_lpImage = NULL; // no data yet > } > |
July 30, 2003 Re: SC/DMC Porting problem | ||||
---|---|---|---|---|
| ||||
Posted in reply to Richard M Thomas | Thanks again Walter. The current version of the problem I'm having appears in an SDI project I'm working on and I'd like to stay in context. The code below produces the error when dropped as a class into a framework SDI project in DMC++ but compiles normally in SC7.5. I've come across the same error when trying to compile parts of 'Numerical Recipes in C++' - presumably when the compiler hits one of its allocation routines. Hope I'm not missing something.... All the best Richard +++ //(test.h) class Test : public CObject { private: char* pointer; public: Test(int size); }; //(test.cpp) #include "stdafx.h" #include "test.h" Test::Test(int size) { pointer = new char[size]; } +++ |
July 31, 2003 Re: SC/DMC Porting problem | ||||
---|---|---|---|---|
| ||||
Posted in reply to Richard M Thomas | Thanks, I can take it from here. -Walter |
Copyright © 1999-2021 by the D Language Foundation