|
I *believe* the syntax is int * const pConstInt;
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
yah your right but is there way i can use pointer and not use reference to do my function...
hey, christian thankx for the help
|
|
|
|
|
I don't understand ? If I do this:
int * const pInt = new int;
I can do this with no problems:
*pInt = 5;
because the value is not const. I cannot do this:
pInt = new int;
because the pointer *is*. Isn't that what you wanted ?
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
ok ill try that... thanks
|
|
|
|
|
In a Win32 Application I loaded RICHED32.DLL using
HINSTANCE ghRichInst = LoadLibrary("RICHED32.DLL");
But when I process WM_DESTOY message and I used folowing code to free the module
if(NULL!=ghRichInst)
{
FreeLibrary((HMODULE)ghRichInst);
ghRichInst = NULL;
}
But windows pops up with a message saying that it has encountered an exception.
Plz help
|
|
|
|
|
Check that the ghRichInst handle has the same value at the FreeLibrary call as it did when it was loaded.
I know it sounds far fetched, but I saw a case recently where a string value (actually a version string loaded from the DLL) overwrote the module handle with the same disastrous results.
We had to open a memory window on the handle (you can get the addr from the watch window) and start F10ing through the code - luckily it happened shortly after the LoadLibrary call.
|
|
|
|
|
The handle value remains the same. I called GetLastError() just before and after calling FreeLibrary(). I got the following messages respectively.
---------------------------
GetLastError
---------------------------
The handle is invalid.
GetLastError
---------------------------
The system cannot find the file specified.
|
|
|
|
|
Have you tried freeing the library after the default implementation of WM_NCDESTROY is called?
MS doesn't even both freeing the library until process exit. To be perfectly honest, there is no reason to free the library unless you just want to be 'good citizen'.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
I'm compiling a little app that uses the Net*() API functions. For NT/2k/XP, you're supposed to link with Netapi32.lib and include Lm.h, while for Win9x/Me you're supposed to link with Svrapi.lib and include Svrapi.h. Doing both at the same time will cause duplicate linkage and a compile-time error. Is there some sort of macro defined (usage: #ifdef WINNT...) that lets you get around this?
Jon Sagara
What about ?
Sonork ID: 100.9999 jonsagara
|
|
|
|
|
Bah - the point is moot. I don't need to do this after all.
Jon Sagara
What about ?
Sonork ID: 100.9999 jonsagara
|
|
|
|
|
Put the OS specific code in two DLLs [one for 98/ME, the otjher for NT/2K]
Now dynamically load the correct DLL at run time
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
Jon Sagara wrote:
Bah - the point is moot. I don't need to do this after all.
Anyway, in your next project you may find #pragma comment(lib, "libname") helpful. Usually you nest this pragma inside #ifdef/#elif/#endif to get different libraries depending on some preprocessor symbol.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
can someone give me an idea how to write an algorithm that takes an array with N elements (some of those element could be duplicated in the array)
and returns a new array with all the elements of the previous array but without dulpicates.
thank you.
|
|
|
|
|
Easy - you need to either use a dynamic array like vector. Otherwise you need to make one pass to do a count of unique items, create a new array of that size, a second pass to add them all ( although I suspect <algorithm> will contain something to do both of these, a pointer is a valid STL iterator ), then delete the old array and return the new.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
You might be able to get some ideas from the 'scatter sort' concept, if the range of values in the array is reasonable.
|
|
|
|
|
I used an activeX controle of type RichText to load a template letter and I wanted to modify its content by program. I have some tagged words in the text that I want to replace by the content of variables (names, address, ...).
But as soon that I load the content of this richtext in a CString, I loose the caracteristics of my text (font type, color, bold, ...).
So, how can I modify this text without loosing the controls characters of my text ?
Thanks in advance.
DD
|
|
|
|
|
My company sells a couple of static libraries. These are non-MFC libraries with a large number of C interfaced funtions (they don't export any C++ objects).
I built a release version today and was amazed to see the size of the .LIB has doubled. I can think of nothing that we've added or changed that could account for this - in fact, I removed most of what we've added, as a test, to see where the bloat was coming from; but the size stayed the same (fat).
Even more interesting, an app built against the new library is the same size as the app built against the old library.
Can anyone think of a way to reduce the static .LIB size? At its new size, it's too fat to distribute (I couldn't afford the extra bandwidth!)
-c
Smaller Animals Software, Inc.
You're the icing - on the cake - on the table - at my wake. Modest Mouse
|
|
|
|
|
|
Turn off incremental linking, no debug info, check optimizations... and all the other neat stuff I could steal from Pietreks "Remove Fatty Deposits from Your Applications Using Our 32-bit Liposuction Tools" MSJ article. Should be in your MSDN.
|
|
|
|
|
Hi all! I am just wondering if some of you can help me. Im designing an mp3 player using MFC and i need a flashy background for it. How do i make the background of the dialog window to appear as a created image that i have done in PSP7.(also, the image that made is not square) Any help would be greatly appreciated.
|
|
|
|
|
It's hardly image manipulation. Save it as a bmp, then use stretchblt to draw it across the window, using GetClientRect to get the size, in WM_ERASEBKGND.
If you want to use a jpg, or something else small, you'll need to read the FAQ for ways of reading them.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
I am writing a frontend to a database in VC++, and need to access a MicroSoft Access database (.mdb).
The database was created in an older version of Access (97 I belive). However, when I go to convert it to a newer version (2000, or with OfficeXP), and run the program, the program crash's on me.
I am using the CDaoDatabase class, and just using the Open(filelocation) to open it. any ideas?
|
|
|
|
|
What is the line of code that it crashes on?
If you post the problem area of the code, somebody might be able to spot what is wrong?
Is there a good reason you are using DAO? Personally, I find ADO to be a better way of accessing databases.
Michael
|
|
|
|
|
Because the program is based off of one I wrote awhile ago, and DAO is what I knew at the time, is there a benifit to going ADO over DAO?
Either way, I have a class called CTeacherDB, it has the variable
CDaoDatabase m_db;
it is crashing on m_db.Open(sDB); where sDB is the location of the database. (ie: X:\wherever\whatever.mdb)
|
|
|
|
|
Newer versions of the database need DAO Version 3.6
You can get this by installing the latest Microsoft database Access Components (if you haven't already done so) but MFC6 still won't use it. You have to mess around a little to fool it into using the right version. There's a kb article somewhere but the following code might show you enough. (Just translate the pjpRegKey::CRegKey to your own method of registry access.)
bool CDatabaseHandler::DAO36Fix()
{
bool bRet = false;
if (AfxGetModuleState()->m_dwVersion == 0x600)
{
PJPreg::CRegKey regkey(HKEY_CLASSES_ROOT, "CLSID\\{00000100-0000-0010-8000-00AA006D2EA4}\\InprocServer32");
CString csPath;
regkey.GetStringValue("", csPath);
if (!csPath.IsEmpty())
{
if (0 == _access(csPath, 0))
{
AfxGetModuleState()->m_dwVersion = 0x601;
bRet = true;
}
}
}
return bRet;
}
Just call this function once during your app's initialisation before you try to open the db.
Hope this helps...
Phil J Pearson
|
|
|
|