|
thank you.
MSN Messenger.
prakashnadar@msn.com
"If history isn't good, just burn it." - Sidhuism.
|
|
|
|
|
Hi everyone,
I bussy working on my c++ skills at the mooment and I came across a little hitch that I cannot find the answer to any where on the net. How do you retrieve the file name of your own application at runtime. The reason is that I don't want people to change it and if it is changed then I would prompt to change it back before running the app.
Any Ideas I would be most greatfull.
Kind Regards
Nyhl G Rawlings (in spain)
|
|
|
|
|
|
Thank you, you have been a great help.
I hope to be helping out on here soon, although at the momment I fear I would confuse people if anything.
Kind Regards
Nyhl G Rawlings
|
|
|
|
|
artful wrote:
I hope to be helping out on here soon, although at the momment I fear I would confuse people if anything.
no problem, help in any form is always welcome.
MSN Messenger.
prakashnadar@msn.com
"If history isn't good, just burn it." - Sidhuism.
|
|
|
|
|
:-DMany newbie questions are more about C rather than C++, so dive on in!
INTP
|
|
|
|
|
AfxGetAppName
LPCTSTR AfxGetAppName( );
Return Value
A null-terminated string containing the application’s name.
Remarks
The string returned by this function can be used for diagnostic messages or as a root for temporary string names.
GFLPOWER
|
|
|
|
|
Hey, if you are using Windows API to program, you can use the GetCommandLine function to obtain the command line string, and then use CommandLineToArgvW to convert the command line to an argv style array of strings.
Remember, the first argument of the commandline is always the "filename"
Check msdn online resource for details about these functions
Remember... testing & debugging are always part of programming ...so exterminate those stinking bugs
|
|
|
|
|
Ahoy there,
I've made this custom list control which supports edit controls, check boxes and combo boxes in its items.
However, I have a minor problem. Say I have restricted the user to only input numbers into the edit control of a specific item. Now, I would also like to verify that the inputted data is between a specific range whenever the user has finished typing (that is, when the edit control loses focus and is destroyed). I do not want to put this verify code specifically in my custom list control class as I want it (the class) to be as abstract as possible. Instead, it should be up to the specific application which uses the control to verify this inputted data. The problem is, however, how I can notify the dialog containing the custom list control about the need to verify some data.
I've tried sending e.g. the LVN_ENDLABELEDIT message but it doesn't seem to be intercepted by the dialog. Also, I've been thinking that one could perhaps pass a function pointer to the custom list control class which the class can then just call whenever it needs data verification.
I'm not sure, though, which one is the best and if my ideas even are preferable.
Suggestions are very welcome!
Thanks in advance,
|
|
|
|
|
"Window Subclassing" will help you solve your particular problem. You can study it in detail in "Programming windows" book by Petzold (chapter 9).
But i have a request, can you please give me a short tutorial(hints/tips) about how to make custom list controls.
It will be of great help
Thanx
|
|
|
|
|
avenger_sb25 wrote:
"Window Subclassing" will help you solve your particular problem. You can study it in detail in "Programming windows" book by Petzold (chapter 9).
Thanks, I'll have a look!
avenger_sb25 wrote:
But i have a request, can you please give me a short tutorial(hints/tips) about how to make custom list controls.
It will be of great help
Check out the other custom list controls at this site, like XListCtrl. They are some great references
Good luck
|
|
|
|
|
This innocent looking little bit o' code:
double CROT_Optimizer::DoStrongWolfeSearch(const CSpringNode& TempNode, const CMatrix& rGradient, const CMatrix& rMatrix_p)
{
#ifndef WORK_IN_SILENCE
TRACE ("Starting Wolfe line search...\n");
#endif
#ifdef _DEBUG
UINT nfe = 0;
UINT nge = 0;
#endif
CMatrix Position(2,1);
Position.SetElement(0,0, TempNode.m_M3DNodePosition.x);
Position.SetElement(1,0, TempNode.m_M3DNodePosition.y);
double alpha = 0.0;
double FunctionVal = PESurfaceValueAtNode(TempNode);
CMatrix Gradient(2,1);
Gradient = rGradient;
causes me the following headaches:
Compiling...
ROT_Optimizer.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1521) : error C2664: 'PESurfaceValueAtNode' : cannot convert parameter 1 from 'const class CSpringNode' to 'class CSpringNode &'
Conversion loses qualifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1569) : error C2166: l-value specifies const object
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1570) : error C2166: l-value specifies const object
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1573) : error C2664: 'PESurfaceValueAtNode' : cannot convert parameter 1 from 'const class CSpringNode' to 'class CSpringNode &'
Conversion loses qualifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1591) : error C2664: 'FirstXDerivative' : cannot convert parameter 1 from 'const class CSpringNode' to 'class CSpringNode &'
Conversion loses qualifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1592) : error C2664: 'FirstYDerivative' : cannot convert parameter 1 from 'const class CSpringNode' to 'class CSpringNode &'
Conversion loses qualifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1670) : error C2166: l-value specifies const object
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1671) : error C2166: l-value specifies const object
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1674) : error C2664: 'PESurfaceValueAtNode' : cannot convert parameter 1 from 'const class CSpringNode' to 'class CSpringNode &'
Conversion loses qualifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1690) : error C2664: 'FirstXDerivative' : cannot convert parameter 1 from 'const class CSpringNode' to 'class CSpringNode &'
Conversion loses qualifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\PATI May 5\ROT_Optimizer.cpp(1691) : error C2664: 'FirstYDerivative' : cannot convert parameter 1 from 'const class CSpringNode' to 'class CSpringNode &'
Conversion loses qualifiers
Generating Code...
Compiling...
AbstractSpringSolver.cpp
Generating Code...
Skipping... (no relevant changes detected)
PatiKernalTester.cpp
PatiStretch.cpp
Error executing cl.exe.
Creating browse info file...
Presenter.exe - 11 error(s), 0 warning(s)
The sad tale is that I am not sure why this is...
There is obviously a problem with the const keyword going on here, but
the function prototype is fine...
Help appreciated.
thx.
<EDIT>
I think I am seeing the problem now...the complaining functions want to
modify the reference and since it has been declared const I am getting
the compile errors, yes?
</EDIT>
John Theal
Physicist at Large
Got CAD?
http://www.presenter3d.com[^]
|
|
|
|
|
If PESurfaceValueAtNode( const CSpringNode& TempNode ) you should be fine, but if it isn't 'const ..' you'll get this error. If const PESurfaceValueAtNode() is a function you've written and the param can be a const reference then you can of course simply change it.
One of the hassles with const is that you need to start using const at all the appropriate lower level functions from the get go. These days I pretty much make everything that can be const, const including functions.
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
Hi Neville -
Yes, I've since figured out this is exactly what is going on. Unfortunately, there are several layers of function calls (that I
can't post) that need to be amended. A seeminly small
tweak & adjustment has now turned into an all-day re-write...
Thanks.
John Theal
Physicist at Large
Got CAD?
http://www.presenter3d.com[^]
|
|
|
|
|
John Theal wrote:
A seeminly small
tweak & adjustment has now turned into an all-day re-write...
const has a habit of doing this to you. An editor with good global search and replace can help a lot at these times. Hint - see my sig.;)
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
If you can come up with an editor with refactoring tools such as those found in Jet Brain's IntelliJ editor[^] I will be your customer until the day comes when I will no longer program for a living.
I know that's no easy task for a C++ IDE/editor (at least not as easy as in Java, where they have introspection/reflection API's), but I'd gladly pay for it, cause it would 1) save me a lot of time, and 2) dare to bite the bullet and go ahead with redesigns, since the code will be refactored in a jiffy.
If I'll be a good boy 'til Christmas, will you have such an IDE for me to buy? Please?
--
Din mamma.
|
|
|
|
|
Can someone please explain 1) how the predicate 'op' differs in each map example below, 2)why op needs to be a class or struct with the predicate specified in an overloaded () operator , 3) why when I use #2 or #3 I loose the ability to change an element using map[key] (such as ++map[key]), and 4) if it is possible to order the elements based on the elements(elem) themselves (i.e. not the key). Thanks!
1) map<key, elem, op> m;
2) map<key, elem> m(op);
3) map<key, elem, op1> m(op2);
Matthew
|
|
|
|
|
Just as a reference for the comments below, from the Microsoft Documentation:
template <
class Key,
class Type,
class Traits = less<Key>,
class Allocator=allocator<pair <const Key, Type> >
>
MatthewP wrote:
how the predicate 'op' differs in each map example below
The comparison of keys defaults to using std::less<Key>, which relies upon a less than operator being available. In examples 1) and 3) a custom comparison functor needs to be supplied. In 2) the default is used.
MatthewP wrote:
why op needs to be a class or struct with the predicate specified in an overloaded () operator
It doesn't. All it needs to do is provide function call notation, it could be a function, but is generally implemented as a class or struct.
MatthewP wrote:
why when I use #2 or #3 I loose the ability to change an element using map[key] (such as ++map[key])
From the Microsoft Documentation:
Type& operator[](
const Key& _Key
);
You can, you just need to make sure that the types of the template paramters match the types of the comparison functor.
MatthewP wrote:
if it is possible to order the elements based on the elements(elem) themselves
If this is a problem perhaps a map isn't the appropriate data structure. Sometimes sorted or associative vectors (or even sets) may give better performance or model the problem domain more closely.
Look at the common operations (in performance critical code) that you'll be using the container for, and select the container based upon those operation. Are inserts, removes or updates the most frequent operations? Most operations are cited in big oh notation, and are easy to get.
If you can keep you head when all about you
Are losing theirs and blaming it on you;
If you can dream - and not make dreams your master;
If you can think - and not make thoughts you aim;
Yours is the Earth and everything that's in it.
Rudyard Kipling
|
|
|
|
|
Can someone please explain 1) how the predicate 'op' differs in each map example below, 2)why op needs to be a class or struct with the predicate specified in an overloaded () operator , 3) why when I use #2 or #3 I loose the ability to change an element using map[key] (such as ++map[key]), and 4) if it is possible to order the elements based on the elements(elem) themselves (i.e. not the key). Thanks!
1) map<key, elem, op> m;
2) map<key, elem> m(op);
3) map<key, elem, op1> m(op2);
Matthew
|
|
|
|
|
This definition of map should provide most of the information you need: STL map[^]
|
|
|
|
|
I is have application for personal assistance, and is use some date and time functions. I am using C++ in the .NET. When is compiled on XP computer, is not runs correct on 2000. When is compiled on 2000, then is runs rightly on both XP and 2000.
Does anyone knowing of compatabile problems with XP/2000? Maybe problem with .NET?
Thanksing...
|
|
|
|
|
what excactly does not work correctly?
Don't try it, just do it!
|
|
|
|
|
Not surely what is wrong since can not debug because only when running the XP version on 2000 is not working. When I compiles on 2000 is working fine.
In the start of program I get the today date to start, and the informations on my screen is wrong. But then later in program when I get today date it is right, and so is the informations.
Also, the spin control sometimes jumps 2 instead of 1 when compiled on XP. When is compiling on 2000 then only jumps by 1.
Thanksing...
|
|
|
|
|
Are there any choices how to create an ActiveX in VS? I see there is a possibility to create an ActiveX-project but I like the dialog drag-and-drop style when creating my MFC-apps. May I create an ActiveX “drag and drop” project in either VS 6.0 or VS .NET?
Any suggestions on ActiveX-articles would please me very much.
...and justice for all
APe
|
|
|
|
|
I have a GPS program serially reading incoming data. A sample of my code is below.
// get speed
Code = mgcGetData(GPRMC_SPEED,(LPSTR)DataBuffer);
if(Code<0) ShowMGC32Error(Code);
if(Code>0) printf("%5s ", DataBuffer);
I have the program printing a few of these data buffers to the screen. I was wondering how to store this data file readout into a actual variable so i can do some calculations
i cant just do variable=databuffer;
???
|
|
|
|