|
StephaneRodriguez wrote:
But in practice I have had so many problems with statically linked MFCs, especially when I tried to run my .exe on someone else machine with sometimes another OS, that I have decided that static linking of the MFCs was not for me. The problem was most of the time a crude GPF! (memory access violation).
I've never had a problem with statically linking. Perhaps you wrote some bad code?
StephaneRodriguez wrote:
In fact, the only *good reason* not to put the MFCs in your app directory is that the MFCs are not only DLLs, they are COM components, and self-register themselves each time they are loaded, hence overwriting the registry, which may lead to unpredictable consequences on the stability of other installed MFC apps, especially after uninstall.
Yikes! I still suspect that isn't true, but I greped the mfc dlls and mfc42.dll has DllRegisterServer in it. Thankfully none of the MFC70.dll's have that in there so maybe they've changed things.
Joel Lucsy (jjlucsy@ameritech.net)
|
|
|
|
|
StephaneRodriguez wrote:
In fact, the only *good reason* not to put the MFCs in your app directory is that the MFCs are not only DLLs, they are COM components, and self-register themselves each time they are loaded, hence overwriting the registry, which may lead to unpredictable consequences on the stability of other installed MFC apps, especially after uninstall.
This isn't true:
1. MFC dlls are not COM components. You can't regsvr32 mfc70.dll. (But you can create COM components with MFC).
2. COM components doesn't register themselves each time they are loaded.
3. With a COM DLL, it doesn't help installing the DLL on your app directory, because, when registered, it will be the only one DLL to be instantiated.
Concussus surgo.
When struck I rise.
|
|
|
|
|
Daniel Turini wrote:
MFC dlls are not COM components
Fair enough for mfc7, I admit I didn't chcked the exports functions before posting an answer,
And I swallow a small raisin.
|
|
|
|
|
My MFC application compiles successfully in both VC++7.0 and VC++6.0 but I feel I have wasted my time and money buying VC++7.0
WHY? I need to have a small distributable.
Here are two senarios:
1. Compile with .NET
Need MFC70.dll which most computers don't have.
2. Compile with VC6
Runs on ALL computers without ANY additional dll's
Surely there is a way using .NET to make the exe link to old dll's like MFC42.DLL and not new ones like MFC70.DLL
Rick Eastes.
------------
http://www.eastes.net
|
|
|
|
|
Yes, somewhat waste of money especially if you don't have C# in the package you bought.
What's more is that MFC70 has STL embedded everywhere, much harder to debug a callstack than the previous release IMHO.
For some programmers however, MFC70 is a new step to achieve robustness and so on,
And I swallow a small raisin.
|
|
|
|
|
RickEastes wrote:
Surely there is a way using .NET to make the exe link to old dll's like MFC42.DLL and not new ones like MFC70.DLL
Have you tried changing the LIB and INCLUDE search paths ?
This probably would help...
Concussus surgo.
When struck I rise.
|
|
|
|
|
How do I prevent a window from animating? I have tried AnimateWindow(hwnd, 0, 0) ,but it is not working.
|
|
|
|
|
Er, what sort of animation are you talking about? Surely it's not just sitting there by itself, animating? Do you mean that little thing with the semitransparent rectangles when it gets minimized?
---
Shog9
Actually I use to find learning in bars when drinking really useful.
It sort of makes a language liquid. - Colin Davies, Thinking in English?
|
|
|
|
|
Actually I am doing a Win32 sample and when I work with Ownerdrawn menus, The menu animation is interrupting with ownerdraw in the first painting. So I want to turn off animation. I have the HWND of menu.
Thanks,
Derick
|
|
|
|
|
Check out SystemParametersInfo() with the SPI_SETMENUANIMATION flag. May be a bit overkill, but could work.
---
Shog9
Actually I use to find learning in bars when drinking really useful.
It sort of makes a language liquid. - Colin Davies, Thinking in English?
|
|
|
|
|
Hi,
I have finished a project with windowns 2000 profesional and VC++ 6.0. Now i want to run the exe file with different window OS. I really want to know how to make the the exe file run correctly with any windows OS, such as, windows95, windows98, windows ME, windows XP and so on?
Thanks in advance!
chen
|
|
|
|
|
If you don't have a PSDK installed, then it will work fine. If you do, then you may find you've used API's not supported on older versions of Windows. If that is so, all you can do is change your code or late bind to those functions and hope none of them are essential ( i.e. then it will work on the older OS', but only if you detect the OS and make sure that code is never run. )
Christian
We're just observing the seasonal migration from VB to VC. Most of these birds will be killed by predators or will die of hunger. Only the best will survive - Tomasz Sowinski 29-07-2002 ( on the number of newbie posters in the VC forum )
Cats, and most other animals apart from mad cows can write fully functional vb code. - Simon Walton - 6-Aug-2002
|
|
|
|
|
Hi I am setting my dialog based app's position in OnInitDialog() using
SetWindowPos(NULL,0,0,100,100,SWP_NOZORDER);
Unfortuanately this does not work as it places it in the middle of the screen. If I add 1 to either of the X or Y positions it places it correctly (but out by 1 obviously)
If I use the above code elsewhere in the program its position is correct.
This occurs only in OnInitDialog() so that must be the problem, Any suggestions?
---
|
|
|
|
|
MFC does some additional work during its WM_INITDIALOG handler, after your OnInitDialog() returns. It compares the size/position of the dialog before and after calling OnInitDialog(). If both are exactly the same, it concludes that you have no special sizing/positioning code and calls CenterWindow() for you.
--Mike--
Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
I don't know why I can't figure this out, but can someone please help me change the icon associated with my .exe file?
Not jsut changing the one in the resources because that just changes it on the taskbar, not the .exe.
Any suggestions?
Thank you.
|
|
|
|
|
Sorry, it *is* the one in resources. Make sure
- it's the first icon in the .exe (you may need to view the .rc file as text to verify this)
- you're editing both the 16x16 icon *and* the 32x32 icon (they're stored together, Windows loads the correct one) and
- you may need to restart Explorer if it's being obstinant about caching the old icon.
---
Shog9
Actually I use to find learning in bars when drinking really useful.
It sort of makes a language liquid. - Colin Davies, Thinking in English?
|
|
|
|
|
Like Shog said it is the resource one. From what you are describing you have other icons in the project resources. Just ad another copy of your app icon and name it something like 1 so it appears at the top of the list.
- Matt Newman / Windows XP Activist
-Sonork ID: 100.11179
"You can't seriously believe that you could get away with suing someone over quoting text from a message posted in a public forum, can you?" - John Simmons
|
|
|
|
|
When I mix 2 pin-enumerations, a fatal error appears saying that 5 objects are left referenced.
But all interfaces are released properly.
Somebody who knows what's going on here?
HRESULT hr=S_OK;
.
IEnumPins* pEnumFirst=NULL;
hr=(*ppFirst)->EnumPins(&pEnumFirst);
if(FAILED(hr))
return hr;
.
IEnumPins* pEnumSecond=NULL;
hr=(*ppSecond)->EnumPins(&pEnumSecond);
if(FAILED(hr))
return hr;
.
IPin* pPinFirst=NULL;
IPin* pPinSecond=NULL;
.
while(pEnumFirst->Next(1,&pPinFirst,NULL)==S_OK && pEnumSecond->Next(1,&pPinSecond,NULL)==S_OK)
{
pPinFirst->Release();
pPinSecond->Release();
}
.
pEnumFirst->Release();
pPinFirst=NULL;
pEnumFirst=NULL;
.
pEnumSecond->Release();
pPinSecond=NULL;
pEnumSecond=NULL;
...and the pins have to do nothing yet! Afterwards, I want to connect them manualy.
[VISUAL STUDIO 6.0] [MFC] [WIN98/2]
Bluute tette!
|
|
|
|
|
never mind...
should be:
while(pEnumFirst->next ...
{
while(pEnumSecond->next ...
{
...
}
}
[VISUAL STUDIO 6.0] [MFC] [WIN98/2]
Bluute tette!
|
|
|
|
|
The Task Manager allows you to get a real-time glimpse of the number of processes that are currently running.
Question: Is there an API that allows me to do this (PerfMon?), or do I have to enumerate all the processes after a specified interval?
Thanks,
Jon
Jon Sagara
Red Swingline Staplers
|
|
|
|
|
Hi.
Visual C++ .NET outputs this error when I try to declare a priority queue with reverse sorting.
-----
// Assuming program runs and before I added the following.
#include <queue>
#include <functional>
std::priority_queue<int, std::greater<int="">> m_nQueueList;
// I try this declaration, but receive the exact same
// error everytime.
std::priority_queue<int, std::vector<int="">, std::greater<int>> m_nQueueList;
-----
Here is the error from Visual C++ .NET
-----
C2065: 'm_nQueueList' : undeclared identifier
error C2143: syntax error : missing '>' before ';'
error C2146: syntax error : missing ',' before identifier 'm_nQueueList'
error C2208: '<unknown>' : no members defined using this type
error C2947: expecting '>' to terminate template-argument-list, found '>>'
error C2976: 'std::priority_queue' : too few template arguments
-----
Does anyone know what the problem is?
Thanks,
Kuphryn
|
|
|
|
|
The first problem that you have is that the < adn > are being destroyed by the HTML parser. When you display code it is a good idea to check the "Display this message as-is (no HTML)" check box when you send your message.
The problem in your code is the >> in this:
std::priority_queue<int, std::greater<int>>
The c++ compiler does not know how to parse the >> symbol if it relates to nested templates. Change your code to this and it should fix it:
std::priority_queue<int, std::greater<int> >
Good Luck
<hr><small>Build a man a fire, and he will be warm for a day<BR>Light a man on fire, and he will be warm for the rest of his life!</small>
|
|
|
|
|
Okay. Thanks.
Added a space in between ">>" fixed it.
Here is the working solution.
-----
std:priority_queue<int, std::vector<int>, std::greater<int> > m_nQueueList;
-----
I would have never guessed the problem had to do with a missing space. That space operator is tricky.
Kuphryn
|
|
|
|
|
If I add a list box item to a form... How can I get the list control to show a list from values in an access table?
Thanks for your help!
Manuel J. Perez
|
|
|
|
|
Hmmmm. This can be a lengthy answer so let me point you toi the right direction. I am assuming you are using VC++ 6.0 and by form you mean a dialog of some kind. Even if you are using .Net my answer will not change much.
There is no direct way of populating a list box or any windows control for that matter with information in a database. There are few controls that you can get out there which will accept a recordset as an input. But thats a different story.
To populate a windows control with information in a database, you need to connect to the database, get the data, and provide it to the control. CodeProject is full of examples on how to connect to databases. You should read one of the turorials on ADO and then move on from there.
Hope this helps.
|
|
|
|