|
How can I use Visual Studio 2010 to build native code applications that run on
Windows XP? Wait! Don't go away in disgust. Here's what I have worked out for
myself:
I have some native-code applications and DLLs written in C++ and developed
with Visual C++ to run on Windows XP. I successfully converted them to Visual
Studio 2010 projects. They compile, link, and run on Windows 7.
I have been working on a Build Configuration that will allow me to use VS 2010
to build executables that run on Windows XP so I can retire the old development
system and not have to maintain two copies of the source code for every program.
No matter what switches I use, I am stuck with an executable that depends on,
for example, mfc90.dll and msvcr90.dll (or mfc100.dll and msvcr100.dll). I can
see that this is because I only have the v90 and v100 platform toolsets to
choose from. I'm pretty sure that I can't import a "platform toolset" that is
equivalent to the one I have in Visual C++ 6.0.
On the other hand, if I copy mfc100.dll and msvcr100.dll into the system32
directory of a Windows XP system, my executable seems to run perfectly. But
I don't think I can legally distribute those files to people who buy my
programs.
What am I missing here?
|
|
|
|
|
You can distribute those files... there's usually a folder that contains the distributable stuff.
See here:
http://msdn.microsoft.com/en-us/library/ms235264.aspx[^]
You should however, be able to force your application to bind these as a static library so that you don't need the dll (this is considered less desirable since you can't udpate mfc unless you recompile your source). If you're not using mfc at all, then you should be able to say "Don't use mfc" or "Use standard libraries only" or something similar in your IDE.
|
|
|
|
|
Albert,
Thanks so much. I looked at the link to MSDN and it's exactly the info
that I needed. I must have a mental blind spot (or several of them) because
I looked all around that area and didn't notice it.
Thanks again,
John
|
|
|
|
|
Happens...
|
|
|
|
|
I am trying to enhance the performance of my project which, in brief, captures image and does image processing tasks subsequently.
I am using the QT-library and Intel's IPP for image processing, being stuck with severe performance issue.
At the begin, I thought the image analysis functions would cause the time troubles, but when using the Instrumentation-Analysis of VS2010 Profiling tool, the WinEventFilter()calling QTCored4.dll consumes the most exclusive time, while processing time of the image ipp function insignificant.
To my understnding, the winEvent function handles e.g. mouse and keyboard interactions and all the things connected to display.
I could understand if Qt-Functions respectively the winEventFilter yield high inclusive time, but not high exclusive times?!
Does someone have an explanation or could turn my attention to some specific further investigation to isolate the problem?!
Thanks in advance, Peter
Profiler-Output:
86% exclusive time by QtCored4.dll
--> function details for QtCored4.dll:
Function that called QtCored4.dll : QCoreApplication::winEventFilter
Remarkably the winEventFilter has a very high 'elapsed exclusive time' but a small 'apllication exclusive time' (that is without IO and stuff)
|
|
|
|
|
in advance thanks~~~ may have a source code
|
|
|
|
|
If you want have a look at source code of a program able to deal with RAR files than check out 7-Zip[^] sources. On the other hand if you wish to hack a password-protected RAR file, I doubt you are going to get help here.
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Moreover I dont think you can have the source code for RAR as far I can recall its not open source
I know I am coward since the day I know that fortune favors the brave
|
|
|
|
|
I think OP's name may be a clue.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Good point.
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
no...that I mean is written in C++ code to decompress RAR,and that's rar file have password, during decompress auto type password to decompress it..
|
|
|
|
|
You can't do this. RAR is a proprietary file format and you need to buy a licence in order to get details of it.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Richard MacCutchan wrote: RAR is a proprietary file format and you need to buy a licence in order to get details of it.
That's incorrect. The LZMA sdk (which 7zip uses) can be used to de-compress a RAR file. It's just that the RAR compression has been kept closed-source/proprietary or such.
"Real men drive manual transmission" - Rajesh.
|
|
|
|
|
Thanks, I should never trust Wikipedia.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
No problem. Technically, unRAR[^] is to be used for de-compressing a RAR file, but I recommended the LZMA SDK, becuase it uses the same code too, and it can do a lot of other things in addition to handling RAR files.
"Real men drive manual transmission" - Rajesh.
|
|
|
|
|
CPallini's answer is correct. You could use the LZMA sdk to de-compress a RAR file. Whether the file has password or not is irrelevant (the SDK has methods for all such cases). If you have a more specific question, ask it in the sourceforge page for 7zip.
"Real men drive manual transmission" - Rajesh.
|
|
|
|
|
|
Rajesh R Subramanian wrote: CPallini's answer is correct.
We call that 'lucky strike'.
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
i create two file one dll and one lib.i was told that i need to put the two files in my project and run the vcproj.
and after i open i will be see in the project propoty in the linker->input-additional dependencies my LIB file.
that was not happen.
i write manual my lib file .
now i get error message
"Error 50 error LNK2019: unresolved external symbol _showall referenced in function _WndProc@16 1.obj
"
and
"Error 51 fatal error LNK1120: 1 unresolved externals C:\Documents and Settings\bla\My Documents\Visual Studio 2008\Projects\12121sdf\Debug\12121sdf.exe
"
someone know how to do this correct ? (without the wizard in the vs)
|
|
|
|
|
I understand English may not be your first language, but it's hard to understand exactly what you're trying to do.
If you're trying to use a DLL, you need to tell the linker about it's associated LIB file. There's a couple of different ways of doing this:
0. Use a #pragma comment(lib,"path\mylibraryname.lib").
1. Use the linker properties in Visual Studio to specify the lib as a resource (as an additional dependency as you noted).
Now, I have no idea what you mean when you say "that was not happen. i write manual my lib file. now i get error message". It's not clear at all what you're trying to say.
|
|
|
|
|
it mean i try your suggestion number 1.and i get error message
now i try your suggestion 0 and i get error also
"Error 55 fatal error LNK1104: cannot open file 'C:Documents and SettingssafMy DocumentsVisual Studio 2008ProjectsQ21sdfQ21.lib' 12121sdf
"
|
|
|
|
|
Copy and paste the pragma comment you used... to see if you have something wrong in the syntax... also, make sure the file is where it's looking.
|
|
|
|
|
this is the error
Error 50 error LNK2019: unresolved external symbol _showall referenced in function _WndProc@16 1.obj
i try this option
#pragma comment(lib,"12121.lib")
and also
#pragma comment(lib,"C:\Documents and Settings\bla\My Documents\Visual Studio 2008\Projects\12121sdf\12121.lib")
|
|
|
|
|
You have to have the full path as you used in the second thing you wrote up there. Make sure the file is there and the file is accessible (not locked somehow).
This error:
Error 50 error LNK2019: unresolved external symbol _showall referenced in function _WndProc@16 1.obj
...means that it cannot find the showall function (with some decoration), this may be caused for a number of reasons, the function either doesn't exist in the library, or the settings between the lib and the executable that determine the function name mangling (or decoration) are different (see this[^]). You can avoid function decorations by importing/exporting functions using C-style methods for importing/exporting from libraries (which used no decorators at all). This may be your issue.
You had posted a different error before, so not sure if your linker is even finding the library file correctly.
|
|
|
|
|
Show us the contents of the 12121.lib file. Also, in the second case your path string is incorrect; each backslash in the path should be preceded by another in order for the character escape sequences to be correct, thus:
#pragma comment(lib,"C:\\Documents and Settings\\bla\\My Documents\\Visual Studio 2008\\Projects\\12121sdf\\12121.lib")
Note that this will fail silently as the compiler fails to validate this string.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|