|
I must admit, I'm totally new to this thing. The interface has changed beyond recognition over the last few years.
CPallini wrote: The above is false. You can easily build a DLL (as well a Static Library) using VC Expression Edition (I've done it): just choose, as project, a Win32 one and then, in the application settings window, select DLL.
I've created now about two dozen empty projects in an attempt to get the options you mention. The biggest learning experience of it all was that I'm getting a feel of the Trepidation our staff feels when I announce that their software has been upgraded. (I Never change the Look and Feel though, if it can be helped). I also noticed that All VC++ 5.0 Help (Help for my Working version)was rendered inacessable by installing V9.0.
Bram van Kampen
|
|
|
|
|
Bram van Kampen wrote: I've created now about two dozen empty projects in an attempt to get the options you mention.
Well, maybe in the next two dozen attempts... Good luck!
Bram van Kampen wrote: The biggest learning experience of it all was that I'm getting a feel of the Trepidation our staff feels when I announce that their software has been upgraded.
I know this kind of feedback, it's useful.
Bram van Kampen wrote: (I Never change the Look and Feel though, if it can be helped).
Beacuse you are a kind developer. I usually cannot resist the temptation...
Bram van Kampen wrote: I also noticed that All VC++ 5.0 Help (Help for my Working version)was rendered inacessable by installing V9.0.
This happened to mee too (with two different version of Visual Studio). I
don't know if it is a documented incompatibility, but I agree: it is a weird thing.
Best wishes to enjoy Visual Studio 2008.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Bram van Kampen wrote: Sofar I've been using Visual Studio 97 and VC++ V5.00.
You really need to be using the full VC++ 2008 then. The Express edition will be limiting.
Kevin
|
|
|
|
|
I went through the same feeling of being locked in VB land when going from VC++ 6.0 to VC++ 2003. I can't imagine how much of a shock it would be to go from VC++ 5.0 all the way to VC++ 2008.
I think it's the one size fits all mentality with the IDE.
The express editions only come with the libraries like .NET, but if you want the power of MFC, you have to buy one of the full products.
|
|
|
|
|
It is a Shock allright, I am maintaining a six year old code base. The Code runs our shops, essentially POS (Point Of Sales) Terminals.
To port this to .NET would involve at least a porting tool, as about 1500 files are involved.
We do not want or need Global Internet Access. VC++5.0 is more than adequate for this. I am now trying to write a form of Internet access, which allows customers to see their bills, and management what's going on!
VC++5.0 should be well able to do this. Maybe we should have a separate sub forum on Legacy MSCompilers, which no doubt people would find usefull.
Not everyone is writing "Push the Boundary" apps. In reality, most queeries on the CPP-MFC messageboard deals with newcommers.
By the way:
if .NET is the way forward according to Microsoft, why is VS2008 littered with JS type files!
Happy New Year
Bram van Kampen
|
|
|
|
|
MFC is alive and well in our shop. We continue new projects in it and use VC++ 2003. Granted, there are quite a few project options but MFC is still in there. Looks different and MFC 4.2 and 7.1 differ a bit in a few places but mostly for the good of MFC. They've fixed a few problems but unfortunately ruined the IDE.
I've gotten used to it though. I still fire up VC++ 6.0 on a regular basis for some test apps but I found the VC++ 2003 compiler to smoke my VC++ 6.0 compiler by a factor or 7 to 1 even with the optimizing compiler disabled. CString is now a template class which is a bit odd but otherwise it feels the same. Some of the C++ conformance has improved allowing for some coding styles that weren't possible with VC++ 6.0.
Some things I hate: the IDE becomes non-responsive and locks up on a regular basis for 2-5 seconds, it's hardly a RAD tool anymore as it is quicker to hand code than use those bastardized "wizards" they give us, not all the tools that came with Visual C++ 6.0 seem to be included, even in the Professional Editions.
Anyway, from what I hear, you don't have to give up on MFC if you use a newer IDE. You just don't get it for free which makes sense in a way since it's really a professional's tool. I plan on going to VC++ 2008 about the start of 2009 so I hope they finish cooking it by then.
Happy New Year
|
|
|
|
|
Hello all,
I was spending some time making a little application that will help me a lot on save time for my future applications.
I'm creating a Property sheet application that initially will have 5 property pages.
I can add and remove some other pages, and of course it is not a big issue if they are not placed in the right order, but imagine that:
UNIT1 | second page | third page | fourth page | fifth page | UNIT2 | UNIT3 | ...
At the beginning I don't know the amount of pages I'll have, and it would be very nice to be able to add the UNIT2 and UNIT3 pages later, but having them after UNIT1:
UNIT1 | second page | third page | fourth page | fifth page | UNIT2 | UNIT3 | ...
Is this hard to do? or even possible?
PS:
I've looked into Google and in the articles regarding to the property sheets, in Google I've found tons of people asking how to change the tab order on a dialog (CTRL+D) and in he articles nothing regarding my question...
PS2:
of course I could set the UNIT1 tab at the end and "end of the story", but the fact is that UNITx should be before as their data affects the other tabs...
As always thank you in advance.
|
|
|
|
|
The PSM_INSERTPAGE Message[^] will insert pages wherever you want.
If you're using CPropertySheet, you may want to implement an
InsertPage() method to a CPropertySheet-derived class. See
CPropertySheet::AddPage() for details.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thank you very much! it seems to be exactly what I needed.
|
|
|
|
|
Hi all, i've played with/search for a solution and gotten frustrated over a problem that i have with a piece of code and i cant seem to get it down for some retarded reason.
The error is this: error LNK2001: unresolved external symbol "int __cdecl brandom(int,int)" (?brandom@@YAHHH@Z)
The code its talking about is
<br />
#include <iostream><br />
#include "header.h"<br />
using namespace std;<br />
<br />
int dport = brandom(1900, 48000);<br />
<br />
int main(){<br />
int dport = brandom(1900, 48000);<br />
cout << dport << endl;<br />
return 0;<br />
}<br />
<br />
#ifndef __RANDOM_H__ // Contents of header.h<br />
#define __RANDOM_H__<br />
void init_random();<br />
int brandom(int client,int top);<br />
int get_random_number(int range);<br />
#endif <br />
</iostream>
I've been to msdn about this stupid problem and yet i cant find out a way to resolve this. Can anyone help? Thanx in advance!
|
|
|
|
|
Could it be that __RANDOM_H__ would have been defined before?
Hope this helps.
|
|
|
|
|
Nope
If it was defined before, the header would have been skipped in the build of the relevant obj, and created a list of undefined symbol errors
Regards,
Bram van Kampen
|
|
|
|
|
?
If what he has written down is correct the only function that he is trying to use from that header file is the brandom one and precisely he is getting an unresolved external...
Here I'm at 3:00 AM so I'm very tired, but it seems clear to me...
EDIT: even if it is so late this is not excuse for not saying hello at the beginning and best regards at the end... sorry...
|
|
|
|
|
The error message is clear:
You have to link with the object (or the library) file containing the brandom function.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
There are plenty of things that could be going wrong here, but my first guess is your missing a reference to a library.
If your function is from a .dll, and you have a .lib file for it, you can avoid path problems by putting them in your project directory along with the header file and include the appropriate pragma. If that eliminates the problem, then you know you had path issues and you can move the .lib file, .dll, and .h file to where you want, each time updating your path settings.
#include "SomeLibrary.h"
#pragma comment(lib, "SomeLibrary.lib")
|
|
|
|
|
Hi,
I would like to get hints as to how to create messages in MFC. I wanted to sense the serial port buffer and then if the bytes received is above a threshold I would like to post a message and handle it with a function. How could it be done. The main issue is creating message or events to be handled.
|
|
|
|
|
That is not a difficult task.
You have to:
1. define your own message, choosen inside the user messages range.
2. Create the message handler with proper signature.
3. add an entry in your class message map.
all of the above steps are well shown in the following documentation page:
http://msdn2.microsoft.com/en-us/library/k35k2bfs(VS.80).aspx[^]
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
In addition to CPallini's reply...
I would recommend using messages ID(s) in the range
WM_APP through 0xBFFF instead of a WM_USER-based ID
as shown in the MS sample code. That way there's much
less of a chance your message will conflict with any messages
used by certain private window classes.
You can also get a system-wide unique message ID with
RegisterWindowMessage().
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
|
IMHO you have to go through GetDeviceCaps [^] (it can return both logical screen dimensions and physical ones) and a small number of elementary math operations.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
In addition to CPallini's reply...
Note that many devices don't provide an accurate value when you call
GetDeviceCaps(LOGPIXELSn) - some displays aren't capable of it, some can
be stretched horizontally and vertically, etc..
If you need accuracy, you may need to provide some method of calibration.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Now we can use the ID2D1Factory interface to get the desktop DPI directly as shown below.
ID2D1Factory* m_pDirect2dFactory;
D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &m_pDirect2dFactory);
FLOAT dpiX, dpiY;
m_pDirect2dFactory->GetDesktopDpi( &dpiX, &dpiY );
with regards,
Manoj G.R.
- "So far so good, but the best is yet to come."
|
|
|
|
|
Hi ALL,
I am doing project in VC++ 6.0, When I run the application, application gets crash. Message box is display with 3 button as "Don't Send" ,"Ignore" and "send". I check all values in my function if there is any NULL value.In my code there is no NULL value is occured any object. Please send me solution to this problem if anybody have. Tell me the possibilities of application crash.
Thanks in Advance
hi
|
|
|
|
|
Have you tried debugging the program? Build, Start Debug, Go (or hit F5). Make sure you compile in debug mode (Build, Set Active Configuration to Win32 Debug). This should stop on the line of code that's causing the problem.
Otherwise, post some code.
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
Hi Steve,
I write code in CPageView class which is derived from CView class. My project is to create web page design tool. when I create page by using my code, as the page is open there is error ocuure. I write customize function to open web page. The error is occur after page is open and application gets crash with messgeBox having 3 buttons as Send Error,Don't sent error and ignore.
void CPageView::OpenWebSite(int nTabIndex)
{
if(nTabIndex > 0 && nTabIndex < nSize+1)
{
CString strPagePath = pFrame->m_selWebPagePaths.GetAt(nTabIndex-1);
theApp.OpenDocumentFile(strPagePath);
}
}
Thanks
Abm
|
|
|
|