|
Dont remember now exactly..
But it has a sample application you can test with that..
BTW: there is another library Anti Grain Geometry[^] Check if that helps.
Regards,
Sandip.
|
|
|
|
|
that is exactly I was looking for.
chesnokov
|
|
|
|
|
It might be slow as it uses GDI. It needs to be converted to GDI+ objects.
chesnokov
|
|
|
|
|
Yes probably with LockBits()/UnlockBits() it might be fast
Let me know if it improves performance.
Also one request if you are going to convert it to GDI+ Please post a article for the same on CP.
Regards,
Sandip.
|
|
|
|
|
Chesnokov,
Not exactly an answer to your question, but following website efg[^]has helped me understand couple of algorithms about image processing (it's been around 5-6 years now). The site still exists. I am not sure how often they update this website, but there might be few links relevant for reference.
Sohail
modified 21-Apr-21 21:01pm.
|
|
|
|
|
Hello everyone,
I find when a C++ console process loads, the DLLs msvcp90d.dll and msvcr90d.dll are always loaded. My question I want to find the different functions of the DLLs and why CRT runtime provides two DLLs other than one.
I have not find any formal information from search. I just did some self analysis and find msvcp90d.dll exports C++ functions and msvcr90d.dll exports C functions. I am not 100% sure. Any ideas?
thanks in advance,
George
|
|
|
|
|
That's because one contains the MS C Runtime and the other the MS Standard C++ Library and Standard Template Library. You can use msvcr90.dll from 'C' as well as C++ but msvcp90.dll is designed only to be used from C++, hence they're split. It may also be down to the sheer scale and historical baggage associated with the projects. The C Runtime is a big enough beast on its own without trying to put the Standard library in the same package. Also the C Runtime is I think basically a Microsoft in house development whereas the C++ Standard library is developed in cooperation with Mr Plauger's DinkumWare.
"The secret of happiness is freedom, and the secret of freedom, courage."
Thucydides (B.C. 460-400)
|
|
|
|
|
Thanks Matthew,
1.
Let me confirm, you mean msvcp90d.dll for C function and msvcr90d.dll for STL function, correct?
2.
In my previous understanding, STL is built with source code directly into our program, as you can see when installed with VC, the source code for STL is avaliable. So, I am confused why we need an DLL for STL. Please feel free to correct me if I am wrong.
regards,
George
|
|
|
|
|
1. No, msvcr90 for C and msvcp90 for STL and Standard C++ library.
2. Yes STL is mostly headers but STL is only part of the Standard C++ library, msvcp90 contains the whole Standard C++ Library. Source is actually provided for both the Standard Library and the C Runtime.
"The secret of happiness is freedom, and the secret of freedom, courage."
Thucydides (B.C. 460-400)
|
|
|
|
|
Thanks Matthew,
I agree with 1 but confused about 2. I have checked that for header files like vector and string, it should contain all implementations required, why need additional library implemented in msvcp90d.dll? Could you show me an example please why the header file like string/vector is not enough and additional source are needed (and the sources are built into library msvcp90d.dll)?
regards,
George
|
|
|
|
|
string and vector are fine as just headers, STL is designed that way. I can't remember at the moment which things require the Dll, the best way to find out is to open it with Depends.exe and look at the exports...
...Hmm that doesn't work too well either as msvcp imports loads of stuff from msvcrt and then exports some of it along with lots of things like char_traits that can be used by just including the headers. I'll have to look into it further as I'm writing my own C++ Runtime. Lets us know if you find out
"The secret of happiness is freedom, and the secret of freedom, courage."
Thucydides (B.C. 460-400)
|
|
|
|
|
Thanks Matthew,
Using depends to see exports of msvcp90d.dll -- there are a lot of functions, looks like all STL functions are exported! I think file vector/string is not just a header file, but also contain implementations inline, so I do not think there are anything missing. I do not know why need an additional DLL. Any comments?
regards,
George
|
|
|
|
|
George_George wrote: why need additional library implemented in msvcp90d.dll?
Don't know. Why you need to ask here rather than read the documentation on the subject?
led mike
|
|
|
|
|
Hi led mike,
I have not found any formal document mentioning what is the function of msvcp90d.dll, document just said it is for STL standard library, but as we can see all STL stardard library code are provided in source format, like file vector/string. I do not know why need an additional DLL. Any comments?
regards,
George
|
|
|
|
|
George_George wrote: I have not found any formal document mentioning what is the function of msvcp90d.dll
http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx[^]
Multithreaded, dynamic link (import library for MSVCR90.DLL). Be aware that if you use the Standard C++ Library,
your program will need MSVCP90.DLL to run.
led mike
|
|
|
|
|
Hi led mike,
I have read it, and my confusion is in my understanding STL is provided by source form, means the application build code with STL source code directly, I am not sure why we need an additional DLL, msvcp90d.dll?
regards,
George
|
|
|
|
|
George_George wrote: my confusion is in my understanding STL
Your confusion is because you can't READ. Where in that article or the section I posted do you see any reference to STL? WHERE?
LEARN HOW TO READ
led mike
|
|
|
|
|
Hi led mike,
I actually have read the document you referred. But my confusion is, in files such as vector/string, it already contain source codes (so that we can build such source codes directly into our projects) and why additional DLL is needed?
regards,
George
|
|
|
|
|
You didn't answer my last question.
led mike wrote: Where in that article or the section I posted do you see any reference to STL? WHERE?
LEARN HOW TO READ, it will help you, really Really REALLY help you.
led mike
|
|
|
|
|
Hi led mike,
The article indicates STL functinos are exported by msvcp90d.dll and I have actually used dumpbin /exports to experiment with export symbols.
But, why there is also source code? The source code is not built into application? I am confused.
regards,
George
|
|
|
|
|
George_George wrote: The article indicates STL functinos are exported by msvcp90d.dll
Where? Quote it, post the freaking quote that says that.
led mike
|
|
|
|
|
Hi led mike,
1.
Here it is.
"Multithreaded, dynamic link (import library for MSVCP90D.DLL)" under "Standard C++ Library" section. I think Standard C++ Library is STL. And I think the quoted sentence means for STL function it is implemented and exported in DLL msvcp90d.dll. If I am wrong to get the hint from the documents, please feel free to correct me.
2.
Could I ask your option, you think STL function is built in source code form into our application directly, or you think STL function is provided in the form of DLL, which is accessed from import address table?
regards,
George
|
|
|
|
|
George_George wrote: I think Standard C++ Library is STL.
Wrong. STL != "Standard C++ Library".
http://www.cplusplus.com/reference/[^]
Stop making assumptions. Learn how to READ and stop asking so many questions in internet forums. You need to spend more time reading and processing the mountains of information that already exist.
Here's how it works: You discover something that you don't understand about software development. You go to Google type in some relevant key words and start READING the mountains of results. While you READ you think, process and try to understand.
Now for the PRIMARY FACTOR (VERY IMPORTANT)! Many subjects have prerequisites. Therefore the order in which one read things is directly related to ones ability to understand the material. So stop jumping around all over the place. Go back to the beginning and make sure you understand a subject before you move on to another. Get it? Got it? GOOD!
Oh, and have a nice day.
led mike
|
|
|
|
|
Thanks led mike,
I think previous our previous confusion is whether STL is provided in source format? -- which built into (in the form of source codes) client application. Or STL is provided in DLL msvcp90d.dll? What is your conclusion?
regards,
George
|
|
|
|
|
George_George wrote: What is your conclusion?
Wow, really? Well based on this conversation culminating with your last post, my conclusion is that you lack the aptitude required for software engineering. Really, I'm not kidding. You can't read and understand the documentation, that's a pretty important aspect of the field. I suggest you find a different field of study, something more suited to you, maybe you could be a lawyer since you like to talk so much.
led mike
|
|
|
|