Click here to Skip to main content
15,921,452 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: error C2065: 'AfxBeginThread' Pin
Nandu_77b5-Apr-07 3:35
Nandu_77b5-Apr-07 3:35 
AnswerRe: error C2065: 'AfxBeginThread' Pin
ThatsAlok18-Apr-07 20:30
ThatsAlok18-Apr-07 20:30 
AnswerRe: error C2065: 'AfxBeginThread' Pin
ThatsAlok18-Apr-07 20:34
ThatsAlok18-Apr-07 20:34 
QuestionHANDLE Problem Pin
micutzu3-Apr-07 3:51
micutzu3-Apr-07 3:51 
QuestionShared memory with CreateDIBSection Pin
phieu3-Apr-07 3:43
phieu3-Apr-07 3:43 
AnswerRe: Shared memory with CreateDIBSection Pin
KaЯl3-Apr-07 4:42
KaЯl3-Apr-07 4:42 
AnswerRe: Shared memory with CreateDIBSection Pin
Mark Salsbery3-Apr-07 7:32
Mark Salsbery3-Apr-07 7:32 
GeneralRe: Shared memory with CreateDIBSection Pin
phieu3-Apr-07 18:29
phieu3-Apr-07 18:29 
Thanks Mark.

OK, Now I see the data pointed to by ppvBits can be shared
through the file mapping.

But now I don’t know why: error code = 87 (ERROR_INVALID_PARAMETER) when
I call CreateDIBSection thought out but bitmap is valid.

Someone can tell me why?
Thank you.

Here is my code:

#define BITMAP_MMF_NAME "Global\\PRJ_IMS"
HANDLE m_hMMF;
HBITMAP m_hBitmap;
void CBitmapMMFDlg::OnButton3()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
int nWidth = 100, nHeight = 100;
long nSize = nWidth*nHeight*3;
// Create a file-mapping
m_hMMF = ::CreateFileMapping(
(HANDLE)0xFFFFFFFF,
NULL,
PAGE_READWRITE,
0,
nSize,
BITMAP_MMF_NAME);
DWORD dw = GetLastError();
if (m_hMMF)
{
// Create bitmap and map this bitmap to File-mapping
m_hBitmap = NULL;
HDC hdc = ::GetDC(NULL); // entire screen
//off-screen bitmap/image size - width must be DWORD aligned (multiples of 4)
LONG sizeImage = ((nWidth * 3 + 3) & 0xfffffffc) * nHeight;
BITMAPINFO bmpInfo;
memset(&bmpInfo,0,sizeof(bmpInfo));
bmpInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmpInfo.bmiHeader.biWidth = nWidth;
bmpInfo.bmiHeader.biHeight = -nHeight;
bmpInfo.bmiHeader.biPlanes = 1;
bmpInfo.bmiHeader.biBitCount = 24;
bmpInfo.bmiHeader.biCompression = BI_RGB;
bmpInfo.bmiHeader.biSizeImage = sizeImage ;
bmpInfo.bmiHeader.biXPelsPerMeter = 0;
bmpInfo.bmiHeader.biYPelsPerMeter = 0;
bmpInfo.bmiHeader.biClrUsed = 0;
bmpInfo.bmiHeader.biClrImportant = 0;

//Create DIB Section - off screen bitmap
void* pBits = NULL;
DWORD dwOffset = 0;
m_hBitmap = CreateDIBSection(hdc, &bmpInfo, DIB_RGB_COLORS, &pBits, m_hMMF, dwOffset);
TRACE("Error code = %d \n", GetLastError());
// change bitmap bit data -> to test output
if(pBits != NULL)
{
for (int i = 0; i < 30000; i ++)
{
*((char*)(pBits) +i) = i%255;
}
}
/////////////////////////////////////////////////
// display bitmap
if (m_hBitmap != NULL)
{
CDC* pDC = GetDlgItem(IDC_STATIC)->GetDC();
if (pDC)
{
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
CBitmap* pBmp = CBitmap::FromHandle(m_hBitmap);
CBitmap* pOldBmp= dcMem.SelectObject(pBmp);
pDC->BitBlt(0,0, 100, 100, &dcMem, 0, 0, SRCCOPY);
}
}
}
}
GeneralRe: Shared memory with CreateDIBSection Pin
Mark Salsbery3-Apr-07 19:43
Mark Salsbery3-Apr-07 19:43 
GeneralRe: Shared memory with CreateDIBSection Pin
Mark Salsbery3-Apr-07 19:51
Mark Salsbery3-Apr-07 19:51 
GeneralRe: Shared memory with CreateDIBSection Pin
phieu4-Apr-07 1:15
phieu4-Apr-07 1:15 
GeneralRe: Shared memory with CreateDIBSection Pin
Mark Salsbery4-Apr-07 7:24
Mark Salsbery4-Apr-07 7:24 
GeneralRe: Shared memory with CreateDIBSection Pin
phieu4-Apr-07 17:04
phieu4-Apr-07 17:04 
QuestionGINA and the net Pin
SeaSol3-Apr-07 3:29
SeaSol3-Apr-07 3:29 
QuestionRichEditCtrl - RTF Pin
Ashok Panchal3-Apr-07 3:27
Ashok Panchal3-Apr-07 3:27 
QuestionRe: RichEditCtrl - RTF Pin
Mark Salsbery3-Apr-07 7:36
Mark Salsbery3-Apr-07 7:36 
QuestionGet Sub-Directories Pin
Programm3r3-Apr-07 3:19
Programm3r3-Apr-07 3:19 
AnswerRe: Get Sub-Directories Pin
_AnsHUMAN_ 3-Apr-07 3:21
_AnsHUMAN_ 3-Apr-07 3:21 
QuestionRe: Get Sub-Directories Pin
Programm3r3-Apr-07 4:01
Programm3r3-Apr-07 4:01 
AnswerRe: Get Sub-Directories Pin
Roger Stoltz3-Apr-07 3:26
Roger Stoltz3-Apr-07 3:26 
QuestionRe: Get Sub-Directories Pin
Programm3r3-Apr-07 5:06
Programm3r3-Apr-07 5:06 
AnswerRe: Get Sub-Directories Pin
Programm3r3-Apr-07 5:14
Programm3r3-Apr-07 5:14 
GeneralRe: Get Sub-Directories Pin
David Crow3-Apr-07 5:58
David Crow3-Apr-07 5:58 
GeneralRe: Get Sub-Directories Pin
Programm3r3-Apr-07 6:20
Programm3r3-Apr-07 6:20 
GeneralRe: Get Sub-Directories Pin
David Crow3-Apr-07 7:01
David Crow3-Apr-07 7:01 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.