|
You could do:
C* multinew = (C*)malloc(sizeof(C) * 10);
for(int i = 0; i < 10; ++i)
new (multinew + i)C;
That should make it possible to use _msize at least. Although, that's a bit farfetched.
Otherwise, how about using std::vector instead?
--
Ich bin der böse Mann von Schweden.
|
|
|
|
|
I was looking for a way to make a functor that would delete pointers to both single objects and arrays. It should somehow recognize whether a pointer points to an array or not, and apply delete or delete[] (or even free() if it was allocated with malloc ). I just can't find out what a pointer is pointing to. I know there is no portable way to do this, but I hoped that maybe there is some Windows-specific trick.
|
|
|
|
|
I guess you could define your own new, new[]. So when you allocate a memory block, you allocate memsize + 4 bytes (for alignment's sake). Write some magic constant in 31 of the 32 bits, and use one bit to indicate whether the allocated memory was new'ed or new[]'ed. Kind of like this:
+--------------+----------------...----------+
| M A G I C F | M e m o r y c h u n k |
+--------------+----------------...----------+ Your version of new and new[] returns a pointer pointing to the "memory chunk". It's sort of similar to how BSTRs work I guess.
--
Ich bin der böse Mann von Schweden.
|
|
|
|
|
Hi!
I have to encrypt a string of text. My text is a CString . The function I call is this:
encrypt(const unsigned char* in, unsigned char* out, size_t n)
I have this:
CString strOutput, strInput = "hello world";
int len = strInput.GetLength();
unsigned char *buf = new unsigned char[len];
memset(buf, 0, len);
strcpy(buf, strInput);
encrypt(buf, buf, len);
strOutput = buf;
delete [] buf;
Can anyone tell me how to convert from a CString to a unsigned char *?
|
|
|
|
|
try this:
sprintf(buf,"%s",strInput);
If it's broken, I probably did it
bdiamond
|
|
|
|
|
Hello!
or try this:
strcpy(buf, (LPCTSTR)strInput);
|
|
|
|
|
Hi, i have been trying to play a wav sound within my app but it will only let me play a default windows sound. I have tried various ways. Does any one know how? or does any one know of a detailed web site telling me how to play wav? Does it need to be saved as a resource? if so how.
Thanks
|
|
|
|
|
|
/*************************************
* This should be put at the top of *
* the .cpp file in which you want *
* the sound functions to be used *
*************************************/
#INCLUDE <mmsystem.h>
/**************************************/
/**************************************
* Go to project/settings/links *
* and add winmm.lib to the listing *
**************************************/
/**************************************************
* Place the below code wherever you would like *
* inside the .cpp file that you included the *
* header file that i mentioned earlier *
**************************************************/
PlaySound((LPCSTR) IDR_WAVE1, NULL, SND_ASYNC | SND_RESOURCE | SND_LOOP);
// The above will play IDR_WAVE1 as a resource in sync and will loop
/***************************************************************************
Now go to the resources tab and right click for simplicity the dialog folder and hit import. change the file type to wave and then find the wave that you want to make a resource. Once that is done make sure it is named IDR_WAVE1. and that should do it you should now have sound.
****************************************************************************/
/***************************************************************************
You might want to add a bool check box to turn the sound on and off cause it might sound cool but after a while it gets annoying at least in my program it did.
****************************************************************************/
//Example of how to turn sound on or off
//make a check box named sound
// give it a control variable call it m_soundcontrol;
// In the onInit of the dialog put m_soundcontrol=true; to turn sound on
// also add
// PlaySound((LPCSTR) IDR_WAVE3, NULL, SND_ASYNC | SND_RESOURCE | SND_LOOP);
// this will turn the sound on at the get go
// then double click on the check box you made and it will make
// a function called Onsound()
// add some code to turn the sound on and off
void CStartingOverDlg::Onsound()
{
if (!m_soundcontrol)
{
m_soundcontrol=true;
PlaySound((LPCSTR) IDR_WAVE3, NULL, SND_ASYNC | SND_RESOURCE | SND_LOOP);
}// end of if
else
{
m_soundcontrol=false;
PlaySound(NULL,NULL,SND_ASYNC|SND_LOOP); // sends a null sound to turn off
} //end of else
} // end of function
Win32newb
"Making windows programs worse than they already are"
|
|
|
|
|
Hi guys
WHats the way to manage the keyboard inputs in a CFormVIew.
Theres is a way to catch all them and control what to do?
What's the right message to manage it?
I've tried with OnChar and OnKeyDown, but it doesn't work?
Best Regards
Doc
|
|
|
|
|
Hello everyone, i am trying to display a given time in my mfc program.
I simply do not know how to display the current time when a user clicks a certain button. I have this in my code
CString s_time;
time_t start;
time (&start);
s_time = start;
MessageBox(s_time,"");
This does not seem to work, how can i take what is in start and convert it into a CString and display it.
If anyone could help it would be great.
none
|
|
|
|
|
Hi, you can use MFC CTime class;
CTime time = CTime::GetCurrentTime ();
MessateBox (time.Format ("Time is %H:%M:%S"));
|
|
|
|
|
I am trying to place a common print dialog, with my own dialog template, as a child in a tab control, and I cannot seem to get it working. I have managed to get the Main Dialog to create the common controls and then move them to the Child Dialog, but they no longer respond to user interaction. I see that the message routing need to be played with. Is there a easier way, examples etc... Thanks All
|
|
|
|
|
How I can set the colour on button. Like set the blue colour on button skin.
|
|
|
|
|
any idea, how to set the colour of text for an edit box. Say from black to blue.
Kind Regards
Caoimh
|
|
|
|
|
You'll need to override the WM_CTLCOLOR message via CWnd::OnCtlColor()'s handler function. You can then set the colour of the edit (or static) controls of your program.
HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch(nCtlColor)
{
case CTLCOLOR_EDIT:
{
pDC->SetTextColor(RGB(0, 0, 255));
pDC->SetBkMode(TRANSPARENT);
}
break;
default:
break;
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
I Dream of Absolute Zero
|
|
|
|
|
I have a question in regard to your post. I'm sure there is a way I just can't figure it out. How do you set an individual edit box's background color instead of CTLCOLOR_EDIT where it changes all the edit controls? Secondly I can't get the code you posted to actually work. I changed a few things to get it to work.
<b>HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_EDIT || nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(100,190,199));
HBRUSH B = CreateSolidBrush(RGB(2,2,255));
return (HBRUSH) B;
}
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}</b>
Win32newb
"Making windows programs worse than they already are"
|
|
|
|
|
Firstly, looking at the code that you've posted, I suspect the reason why it now suddenly works is because your control is a regular static window (used for read-only text disply etc) and not an edit control, as was assumed. I tend to use a switch statement to distinguish between the control types (there are other types such as CTLCOLOR_DLG and CTLCOLOR_LISTBOX)
Secondly, you can target a specific control by quering its control id. For Example:
if(pWnd->GetDlgCtrlID() == IDC_EDIT_INPUT)
{
pDC->SetTextColor(RGB(0,190,0));
pDC->SetBkMode(TRANSPARENT);
}
I Dream of Absolute Zero
|
|
|
|
|
I have an application where I have a dialog item with a button.
All I want to do is disable the button after the user selects it, so it cant be selected again until later in the program. I know this is easy...I forgot how to do it.
I thought is was something like:
pButton->Enable("false");
Jerry
|
|
|
|
|
|
pButton->EnableWindow(0);
|
|
|
|
|
if you have a button control variable called say btn_mybutton;
do this
btn_mybutton.EnableWindow(FALSE); //this will disable it
btn_mybutton.EnableWindow(TRUE); // this will enable it
Win32newb
"Making windows programs worse than they already are"
|
|
|
|
|
I have an application that opens a document over dde in winword. Another .Net application can open documents with ODMA(Open Document Management). If i open a document in word with ODMA and i close word, and then i want to open a document from the other application then DDEConnect stops and waits until i close the application that opened the document with ODMA and i start a new word.
It's a bit complicated. Maybe someone has seen a DDEConnect to stop, and wait for something. Why can it be? Please help me!!!
|
|
|
|
|
Just wondering how one can determine if a int is even or odd?
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
int i=2;
int j=3;
i%2 = 0
j%3 = 1
You figure out the rest
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|