|
the Dark lord himself
I don't believe in failure. It is not failure if you enjoyed the process.
|
|
|
|
|
Hi all, I'm looking for ways to make my program can do self-upgrade. I just have no idea how to override the main program with the new version if it is still running.
Lisoft
|
|
|
|
|
If you want to upgrade it while it is running i think the only way is to put all code that might need updates inta a dynamic library. Your programm then simply needs to reload the library and you're done. But this will still require some kind of interruption in the regular flow. This is just a general idea, i hope it applies to your problem. (can i say that - "it applies to your problem" ? or is it bad english ?)
|
|
|
|
|
Updating an EXE while it's running won't work so here's how I do it basically (just one
possible way)...
1) During initialization check if upgrade available
2) If upgrade available start upgrader application and exit.
3) Upgrader app copies/overwrites new files
4) Upgrader app starts the original app and exits
|
|
|
|
|
See this [^]article and see if it meets your needs
|
|
|
|
|
Thanks so much, I think this is exactly what I want.
Lisoft
|
|
|
|
|
I am working with the Explorer kind of MFC Application.
Here I face a problem of when I call a Context Menu from TreeView and when I Handle this menu event from Mouse Click.
- Context Menu is working fine.
- I want to handle the menu control from MOUSE RIGHT CLICK MESSAGE.
- Control ID is also captured correctly when Mouse is clicked (As per expected).
- But When program calls a dialog from this point. The dialog has not a focus on it Even I try so hard Focus on dialog controls are not coming.
- If I swith from this application and coming back to this application again it is working fine. (Change of Focus from one application to another).
How can I resolve this problem?
|
|
|
|
|
Can you post the code calling the dialog ?
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus
|
|
|
|
|
I had this function in a class i defined :
void AddJob(IRunnable &NewJob);
Now there is a Windows API that is also called AddJob , but with completely different parameters and return type. The class was defined inside a static library. When i wanted to call that function in an application that linked my library :
TestInstance.AddJob(IRunnableImplInstance);
i got a linker error "Unresolved external". I renamed my functio now, and all works well. But i wonder why the error occured in the first place. The function had completely different parameters, return types and class context (the API is in the global namespace). I use VC++ 6. Does anyone have an explanation for that ?
|
|
|
|
|
I believe that C functions, even when compiled by a C++ compiler only differ by name and not by return type, name and parameter list for C++ member functions. Would this be the culprit?
Chris Meech
I am Canadian. [heard in a local bar]
Nobody likes jerks. [espeir]
Hey, I am part of a special bread, we are called smart people [Captain See Sharp]
The zen of the soapbox is hard to attain...[Jörgen Sigvardsson]
I wish I could remember what it was like to only have a short term memory.[David Kentley]
|
|
|
|
|
I don't know for shure. But i think unsell you declare a function __stdcall explicitly, it will always be translated into that long C++ symbol lingo. However, why would that result in an unresolved external linker error ? If anything it's a redefinition of a symbol, but not no definition of that symbol.
|
|
|
|
|
You're correct. I've got it backwards. My explanation would result from a redefinition error. Not what you are after. Sorry about that.
Chris Meech
I am Canadian. [heard in a local bar]
Nobody likes jerks. [espeir]
Hey, I am part of a special bread, we are called smart people [Captain See Sharp]
The zen of the soapbox is hard to attain...[Jörgen Sigvardsson]
I wish I could remember what it was like to only have a short term memory.[David Kentley]
|
|
|
|
|
This one is going to make you laugh and cry ...
In the Microsoft headers, there are TWO definitions for almost every function - the ANSI version and the UNICODE version. The AddJob in the Microsoft headers is redefined as either AddJobA or AddJobW. The precompiler will see any similar text and change the name.
Now, in your static library, you must NOT have included anything close to the printer header, so the AddJob stayed as 'AddJob', but in your project, when you went to use it, and maybe you directly or indirectly included the files which redefined AddJob, so it did not find AddJobA or AddJobW in your library at link time - your project's main OBJ module was looking for the wrong name.
I had been tripped up by this one time a while back as well. You have to be careful naming anything requiring linkage the same as any one of the bazillion WIN32 functions out there!
This would also explain why once you changed the name your 'problem' went away.
Any sufficiently gross incompetence is nearly indistinguishable from malice.
|
|
|
|
|
Well, it made me laugh more than cry. I knew that most of the functions are mapped to the A and W version via macros, but i didn't make the connection. Well, you just gotta take it with humor ...
|
|
|
|
|
A good candidate for the subtle bug forum...
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus
|
|
|
|
|
From an dialog based win32 app I awant to load a menu in the dialog. How to do that?
|
|
|
|
|
See LoadMenu On MSDN it has examples that I think its helpful for you
|
|
|
|
|
Hi, How do I make dynamic array of String class in VC++? Thanks in advance. Priyank
|
|
|
|
|
use std::vector<std::string>
don't forget to #include <VECTOR> and <STRING>
|
|
|
|
|
Depending on what you want to do with the String, and weather it doesn't matter if they get copied or not you should use std::vector<std::string::reference> i guess.
-- modified at 8:29 Friday 10th November, 2006
|
|
|
|
|
Mr.Brainley wrote: ...you should use std::vector i guess.
Which is exactly what toxcct suggested.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Inserted html code "<" now. Now it makes sense - i hope.
|
|
|
|
|
Actually I want to make two dynamic arrays of String and then need to do some comparison with each other. I made vector of String class and tried to push_back methode to add string to it but it gives me error like “cannot convert from 'System::String __gc *__gc * ' to 'System::String __gc ** ' Cannot convert a managed type to an unmanaged type”
My code is
vector<String*> strArr;<br />
strArr.push_back("string1");<br />
strArr.push_back("string2");
can I know what is the problem with my code?
Thanks
|
|
|
|
|
priyank_ldce wrote: vector strArr;
strArr.push_back("string1");
strArr.push_back("string2");
can I know what is the problem with my code?
How about:
vector<String*> strArr;
strArr.push_back(new String("string1"));
strArr.push_back(new String("string2"));
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
DavidCrow wrote: How about:
vector<string*> strArr;strArr.push_back(new String("string1"));strArr.push_back(new String("string2"));
I tried it. It gives same error I am writing full error message here.
error C2440: '=' : cannot convert from 'System::String __gc *__gc * ' to 'System::String __gc ** '
Cannot convert a managed type to an unmanaged type
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(579) : while compiling class-template member function 'void std::vector<_Ty>::push_back(System::String __gc *const __gc & )'
with
[
_Ty=System::String __gc *
]
eAssessment.cpp(20) : see reference to class template instantiation 'std::vector<_Ty>' being compiled
with
[
_Ty=System::String __gc *
]
And this is under push_back methode.
|
|
|
|