|
Guys, Anyone knows where I can download the Microsoft 'C' Compiler 6.00?
I need to make some changes to an old project built using this compiler and I need to recompile the project using the MS C 6.0 compiler.
I know that with some changes I could compile with MS VC++ or even Turbo C++, but my client _requires_ me to use MS C 6.0 compiler because of (reasons)...
modified 25-May-20 21:47pm.
|
|
|
|
|
Legally, you can't. It isn't part of MSDN (they only go back to VC++ 1.52c which is v7 or v8. I faced a similar problem here with a client who had source/executables but no compiler and they needed some changes, but fortunately, I've been using MS C since 5.00, and every time I upgraded, I kept the old disks. As time has gone by, I've had to copy them all to CD so that my newer machines can still access them, since 5 1/4" floppies aren't too common these days.
You *should* be able to use VC1.5 to do the work, then a final build with C6 if someone near you has a copy. I certainly ported a lot of stuff from 6 to VC++ 1.5 with very little work. Hardest was figuring out the right project settings.
I can understand why they want you to use C6. They probably feel it's safer, since that was the original tool, and unless you use C6, C7 (aka VC++1.0) or 1.5, you can't produce a DOS application.
Steve S
|
|
|
|
|
Hi Steve, thank you for getting back to me.
The changes to the project are already being done, I'll just need the compiler
Is there anyway I can buy it from Microsoft? I've searched MS site, but can't find anything.
modified 25-May-20 21:46pm.
|
|
|
|
|
We need to pass a struct from CMyapp to CMyDoc. Is it possible to do
this, and how painfull will it be.
Thanks in advance
-Fred
|
|
|
|
|
The app could (selectively) allow the doc could access it by exposing a getAtComplexData() API. Your doc would do:
CMyApp* pMyApp = (CMyApp *) AfxGetApp();
ASSERT (pMyApp != NULL);
ComplexData* pComplexData = pMyApp->getAtComplexData (this);
if (pComplexData != NULL) {
...
}
/ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
You have a few options available.
As the structure exists in the application class (CMyApp), you can create a member function that returns the address of this structure.
Now, if this method is called from inside CMyDoc, the document has the address of the structure, and can operate on it freely, providing that both objects reside on the same thread. If they do not, things get more complicated.
Alternatively, taking an advanced step from the section above, you can create a structure into CMyDoc as well, then get a pointer from CMyApp and use memcpy to copy the structure data from CMyApp to CMyDoc. Now, CMyDoc contains a copy of the structure.
The previous posted created an example piece to show you how to access the application object at run-time. Use this method to call the function that returns the structure address.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Hi everyone I get an assertion error when I try to iniatialize the contents of the controls of CDialog derived class of Edit boxes and Combo boxes. I try to initialise them at the constructor. Of course I have attached member variables to each control.
The initialization code works well when for instance I trigger, execute it by a button click.
Can anyone help?
|
|
|
|
|
One solution is to initialize the controls in OnInitDialog().
Kuphryn
|
|
|
|
|
The assertion is probably something like ASSERT( ::IsWindow( m_hWnd ) );
This happens because while in the constructor, your dialog is not actually a real window yet. The MFC classes, such as CDialog, are wrappers around the real windows which are represented by HWNDs. This means that there is two stage initialisation: firstly the CDialog (or equivalent) object must be created, and then secondly, the real window must be created, or the MFC object must be attached to an existing real window. The consequence of this is that within the object's constructor, you cannot call any methods or use any member variables that expect the dialog to be created as yet. The member variables for the edit boxes get attached to the real edit controls during the first call to DoDataExchange(), but this is not called until somewhere inside CDialog::OnInitDialog(). Until that has been called, your member variables are not yet attached to real windows, and so will assert if you try to call methods that assume otherwise.
Dave
http://www.cloudsofheaven.org
|
|
|
|
|
Can anyone think of a reason why
keybd_event(45,NULL,KEYEVENTF_KEYUP,NULL);//for keyup message
would work, but not
keybd_event(45,NULL,NULL,NULL);//for keydown message
?
halblonious
|
|
|
|
|
Anyone know what a game engine is and what it does?? HELP??
<marquee>Universal Project
|
|
|
|
|
Well google is your friend, but I'll have a go anways
A game engine is typically a library of code that is dedicated to handling the low level graphics functionality, and then packaging this up with nice easy to use high level function calls. They typically are 3D oriented, and allow for building a full scenegraph, managing the graph, rendering the shapes, adding textures, animating the shapes, and possibly add extra things like collision detections, a set of physics rules for objects, etc. Some engines may even include rudimentary AI that can be assigned to characters.
Basically the game engine takes care of the graphics basics so you can concentrate more on the specifics of your game rather than worrying how to display a 3D toroid.
¡El diablo está en mis pantalones! ¡Mire, mire!
Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)!
|
|
|
|
|
(as far as I understand )
a game engine is exactly what the name implies, it is what makes the game run, usually provide the basic framework for animation, level designs, weapons, game sequences, rendering, maybe some physics.
it helps you focus on the meat of the game, instead of the skeleton of the game.
google for unreal game engine or Bioware Infinity Engine
or have a look at http://www.gamasutra.com/[^] for computer game programming issues.
Maximilien Lincourt
"Never underestimate the bandwidth of a station wagon filled with backup tapes." ("Computer Networks" by Andrew S Tannenbaum )
|
|
|
|
|
hi.,
I have a MDI program with a few dialog boxes,
whenever i call the UpdateData() function within the dialog box
i get an ASSERT error,
is there any other way to update my data in the dialog box??
Ehsan Behboudi
|
|
|
|
|
Avoid using UpdateData() unless you really understand it and know that an alternative does not exist. Use control variables instead and things will be much smoother.
What is the file/line that is firing the assertion? Chances are that it is in the DoDataExchange() function of your dialog class. Have you stepped into the code to see what is happening?
|
|
|
|
|
i use UpdateData() in my other dialog box with in the same program, and it never gave me any problems,
The part/line that fires the ASSERT is within the UpdateData() code.
you mentioned that I can use control variables !!!
what is that? and how can I use that?
in my dialog, i have 5 boxes that i just need to update their numbers (double)
Ehsan Behboudi
|
|
|
|
|
Problems aren't guaranteed, but they can appear if precautions aren't taken.
http://flounder.com/updatedata.htm
double d1, d2, d3;
CString strText;
strText.Format("", d1);
m_edit1.SetWindowText(strText);
strText.Format("", d2);
m_edit2.SetWindowText(strText);
strText.Format("", d3);
m_edit3.SetWindowText(strText);
is the easiest, most straightforward, and doesn't mess with any of the other controls/variables like UpdateData() does.
|
|
|
|
|
okay,,, thanks, i read the website too
but what i don't get is,, what is m_edit1???
in my dialog i have few edit box,, and assigned a double variable to each.
i don't really get what m_edit1 is?
Ehsan Behboudi
|
|
|
|
|
It's a CEdit control variable.
|
|
|
|
|
Find out why you get the ASSERT. It usually means you're doing something wrong.
Other ways to update controls are:
- SetDlgItemText(CONTROL_ID, ...)
- SetDlgItemInt(CONTROL_ID, ...)
- GetDlgItem(CONTROL_ID)->SetWindowText(...)
- GetDlgItem(CONTROL_ID)->SendMessage(BM_SETCHECK, ...)
To retrieve the data, look for Get versions of these.
Regards,
Alvaro
Hey! It compiles! Ship it.
|
|
|
|
|
Set a breakpoint in the UpdateData instruction and "step into" the line of code that gives the assertion error. The ASSERT condition usually tells you what's wrong. I would also check the DoDataExchange method for control incompatibilities(Wrong DDX function)
|
|
|
|
|
Override the window message handler WM_INITDIALOG and initialize your variables. You can only call UpdateData() after the dialog has been initialized.
Do not call UpdateData before CDialog::OnInitDialog(), otherwise it will crash.
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
myText = "something";
UpdateData();
}
|
|
|
|
|
Hi. I posted an Article Request/Ideas about this subject in the "Article Request/Ideas" forum. If anyone is interested in co-writing it, please let me know!!!
|
|
|
|
|
Does anyone know how to implement the usage of this indicator? I put it in:
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
ID_INDICATOR_OVR,
};
But I have no clue where to go from there to make the little guy in the bottom right corner actually toggle on and off.
halblonious
|
|
|
|
|
You'll need to add a UI handler for it. In the appropriate message map, add the ON_UPDATE_COMMAND_UI macro (outside the “{{AFX” comments), for ID_INDICATOR_OVR (in Mainfrm.cpp):
ON_UPDATE_COMMAND_UI(ID_INDICATOR_OVR, OnUpdateOver)
void CMainFrame::OnUpdateOver(CCmdUI *pCmdUI)
{
if (some_condition)
pCmdUI->SetText("Over");
else
pCmdUI->SetText("");
}
|
|
|
|
|