|
Well, then you must fill CLongBinary::m_hData and CLongBinary::m_dwDataLength by yourself.
I would just use the function ::GlobalAlloc() , ::GlobalFree() , etc.
--
See me: www.magerquark.de
Want a job? www.zeta-software.de/jobs
|
|
|
|
|
when I stop waverecord
//
if(hWaveIn){
waveInStop(hWaveIn);
waveInReset(hWaveIn);//failed
waveInClose(hWaveIn);
hWaveIn = NULL;
}
why ?????
these codes show open wave:
hWaveIn = NULL;
if(sta=waveInOpen(&hWaveIn, WAVE_MAPPER, (LPWAVEFORMATEX)&(pgsmwavefmt->wfx), (unsigned long)waveInProc, 1L, CALLBACK_FUNCTION))
{
return 2;
}
for(i=0;i < MAXWAVEBLOCK; i++)
{ WaveHdrIn[i].lpData=WaveInBuffer[i];
WaveHdrIn[i].dwBufferLength=MAXWAVEBUFFER;
WaveHdrIn[i].dwFlags=0;
WaveHdrIn[i].dwUser=0;
if(waveInPrepareHeader(hWaveIn, &WaveHdrIn[i], sizeof(WAVEHDR)))
{ return 3;
};
if(waveInAddBuffer(hWaveIn,&WaveHdrIn[i],sizeof(WAVEHDR)))
{
return 4;
}
}
if(waveInStart(hWaveIn))
{
return 5;
}
|
|
|
|
|
In my application i use ADO method in differents method. So, in each of them when i need of smart pointer as _RecordsetPtr or _ConnectionPtr, i declare them as local variable in each of them. So, i would like to know how and where i could declare the variable so that they would declare one time only. I try to declare them in the .h file or at the top of the .cpp file and it doesn't work, so what is the correct way of doing that?
thanks in advance
gerald
|
|
|
|
|
If you declare them in your header file, you'll need to call an initialise method in order to create them. Just declare your pointer, and either set it to NULL or call CreateInstance in the constructor, or in another method if you prefer. There is no reason for this not to work, I am doing the exact same thing as we speak.
Christian
Secrets of a happy marriage #27:
Never go to bed if you are mad at each other. It's more fun to stay up and fight.
|
|
|
|
|
Could you show me an example, because i'm a beginner in this kind of application
thanks
gerald
|
|
|
|
|
Sure, I'm happy to try. One caveat - this is my first ADO app and my first serious ATL app ( not that I think you're using ATL, nor do you need to, the point is I'm not talking from years of experience when it comes to ADO )
In my header I do this:
private:
_ConnectionPtr m_Connection;
In my constructor I do this:
m_Connection = NULL;
Then I have a Connect method like this:
STDMETHODIMP CSAFileDB::Connect(BSTR DatabasePath)
{
m_DatabasePath = DatabasePath;
m_Connection.CreateInstance(__uuidof(Connection));
CComBSTR conStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=";
conStr.Append(DatabasePath);
bstr_t con(conStr);
TESTHR(m_Connection->Open(con, "", "", adConnectUnspecified));
return S_OK;
}
Ignore the ATL stuff, the point is just that I connect.
Then in other methods I start by checking if m_Connection == NULL. My reason is that if it *is* NULL I can connect with each call, which slows things down but makes my database stateless ( each call performs a complete action and relies on no other calls, a good thing for a COM object to be able to do, I'm thinking ).
This works fine, so I see no reason why it wouldn't do the same for you, assuming all your methods are in the one class.
Christian
Secrets of a happy marriage #27:
Never go to bed if you are mad at each other. It's more fun to stay up and fight.
|
|
|
|
|
For global variables you need two kinds of declaration. You need to actually define them in exactly one .cpp file. This creates the space they occupy and initialises them.
The other declaration gives code outside of the module in which they are defined access to them.
So in the .h file you should put, say,
<br />
extern MyType *myGlobalPointer;<br />
in _one_ of the .cpp files you put
<br />
MyType *myGlobalPointer = NULL;<br />
extern is actually ignored these days but I prefer to put it in anyway for clarity.
Global Variables are pretty unpopular these days. Usually the substitute is to use static members of classes. So, for example, if you are declaring a "singleton" class, that is a class of which you will create only one instance you might do
<br />
class MyConnection : public CConnection {<br />
...<br />
public:<br />
static MyConnection *theConnection;
<br />
..<br />
<br />
MyConnection( ... ) : CConnection (... ) {<br />
...<br />
theConnection = this;
}<br />
And in cpp
<br />
<br />
MyConnection *MyConnection::theConnection = NULL; <br />
<br />
...<br />
<br />
<br />
MyConnection::theConnection->disconnect();<br />
<br />
|
|
|
|
|
how to crypt a string that contain 16 string to 8 string
ex:
9876123456783456 To 93831920
|
|
|
|
|
Maybe the concept your are looking for is Binary Coded Decimal. With this, you could encode ascii digits in a string so that one byte holds two digits - but it would not directly translate to a readable string, unless you discarded information in the translation.
|
|
|
|
|
I am creating a SDI application. The document keeps track of a single instance of a grid class which I need to save the state of. I have derived the grid class from CObject and am using the Serialize member function of the document class. My problem is that it does not seem to save anything of the user-defined grid class. I tried just saving an int value as well to make sure that it was actually serializing properly and it was. I derived my class (Grid) from CObject and placed the line DECLARE_SERIAL( Grid ) in the public section, and finally placed IMPLEMENT_SERIAL(Grid,CObject,1) at the bottom of my document class but no joy. Any ideas as to what I'm doing wrong?
Thanks for any help in advance
Nick
|
|
|
|
|
Have you implemented the virtual function 'Serialize' in your grid class?
To make your grid class reusable, put IMPLEMENT_SERIAL(Grid,CObject,1) in your grid.cpp istead.
In your doc class' Serialize call: m_mygrid.Serialize(ar);
In your grid class Serialize you need to store and load all grid information.
/Niklas
|
|
|
|
|
Hi!
I search the formula to compute the yHeight value of CHARFORMAT2 structure. I give a number to the formula like 10, 12 (like word font size selection). The following formula doesn't work :
-MulDiv ((int)dwSize, ::GetDeviceCaps (pDC->m_hDC,LOGPIXELSY), 72)
Thanks
F.Julien
|
|
|
|
|
How can I create an MDI application in MFC ??
A) NOT Doc/View
B) Dialog Based
there is a way in the MFC app wizard, at the end before 'Finish'
Change from 'CView' to 'CFormView'.
Then it's a dialog BUT Doc/View.
Is there any easy other way ??
Name: STR
BTW: for some of you that wished for CodeProject irc server
I create a channle on DalNet called "#CodeProject"
|
|
|
|
|
Don't know if this is an "easy" way, but it seems to work (I haven't tested it much). The idea is to replace the generated view window with a property page.
1. Generate a standard MDI project without Doc/View support.
2. Remove the generated CWnd derived view class from the project.
3. Add a FormView dialog resource and create a new CPropertyPage derived class attached to it.
4. In your CMDIChildWnd, replace the old view with an instance of your new CPropertyPage class.
5. In the child frame's WM_CREATE handler, remove the code to create the old view. Replace it with something like this:
m_wndView.Create(IDD_MAINVIEW, this);
SetWindowLong(m_wndView.m_hWnd, GWL_STYLE, WS_CHILD | WS_VISIBLE);
m_wndView.SetDlgCtrlID(AFX_IDW_PANE_FIRST); 6. In CChildFrame::OnCmdMsg(), don't call the view's OnCmdMsg.
--------------
"Aagh!! I'm a victim of a Random Act of Management!"
|
|
|
|
|
How To Compress 16 String/numerik To 8 String/Numerik
Ex :
16 String 8 String
1893857191819578 To 12839484
|
|
|
|
|
What are you asking exactly ? How does the 16 digit number relate to the 8 digit number ? I can't see what it is you're chasing...
Christian
Secrets of a happy marriage #27:
Never go to bed if you are mad at each other. It's more fun to stay up and fight
|
|
|
|
|
Can anyone tell me why the following code does what it does:
(Note that the code has been trivialised for readability )
ZeroTime.SetDateTime( 1970, 1, 1, 0, 0, 0 );
OtherTime.SetDateTime(1970, 1, 1, 0, 0, 10);
COleDateTimeSpan TimeDifference;
TimeDifference= (OtherTime - ZeroTime);
CString Seconds, TotalSeconds;
Seconds.Format("%10d", TimeDifference.GetSeconds());
TotalSeconds.Format("%10d", TimeDifference.GetTotalSeconds());
Seconds.Replace(' ','0');
Seconds.Replace(' ','0');
After all that I get the following output:
Seconds = 0000000010
TotalSeconds = 0000000000
Why can't GetTotalSeconds determine the correct number of seconds??
Environment is Visual C++ 6, SP5 on Win NT4 SP6
It's driving me nuts!!
Thanks anyone that can help!
Senior Test Engineer
GLI Australia
www.gli.com.au
|
|
|
|
|
The problem is that you are trying to format the return value of GetTotalSeconds function as if it were an integer. According to MSDN the function is prototyped as a double even though it returns an integer.
Try this:
TotalSeconds.Format("%10d", (int)TimeDifference.GetTotalSeconds());
This works for me.
|
|
|
|
|
Yes, thanks for the info, I ended up doing this:
long Difference = (long)TimeDifference.GetTotalSeconds();
TotalSeconds.Format(("%10d", Difference);
(or something similar anyway).
No need to tear my hair out anymore! Thanks for the info!
Regards
Senior Test Engineer
GLI Australia
www.gli.com.au
|
|
|
|
|
Hi, I'm Pham minh Quang. I live in VietNam
I'm learning VC++ now and i will have to create a project soon.
I want to write a program like a HTML Editor.
Do you show me where I can download a demo source code?
Thank you very much.
p/s: sorry for my English
|
|
|
|
|
If you're learning you should get a grasp of C++ first, not MFC or programming the Win32 SDK. Doing the stuff you see in Windows GUI wise is pretty easy but knowing C++ will make what you learn that much easier. Anyone can tell you how to do someting but once you understand the concept it becomes much easier...
Sam C
----
Systems Manager
Hospitality Marketing Associates
|
|
|
|
|
Release build optimized for minimum size I get 36k when #if 0. With #if 1 I get 84K. Why do the stream classes add 48K to my project?
#include "stdafx.h"
#include <sstream>
int main(int argc, char* argv[])
{
#if 0
std::stringstream oss;
oss << 1;
#endif
return 0;
}
<pre>
|
|
|
|
|
The CRT + stream templates? Templates are known for bloat under VC++ as there's no partial template specialization.
CodeGuy
http://groups.yahoo.com/group/wtl
|
|
|
|
|
Thanks ahead of time.
I'd like to use functions in a .dll.
I have no .def or .lib, however.
Any ideas on how to reverse engineer these??
thanks again
|
|
|
|
|
This was covered a while back, but I can't seem to find the thread, you should check out Q131313 in the KB.
http://support.microsoft.com/support/kb/articles/Q131/3/13.asp
-Ben Burnett
---------
On the topic of code with no error handling -- It's not poor coding, it's "optimistic"
|
|
|
|