|
gnanapaul wrote: i need to convert a image file into stream.
fstream ?, fstream fs("Image.img", ios::in ...); makes file to stream.
if you want to keep in memory, as Iain already specified, use CMemFile() to store image data and CArchive provides the redirection stream like operators (<< , >>)
|
|
|
|
|
thanks for your reply.
should i use any header file?
paulraj
|
|
|
|
|
#include <fstream> for fstream class.
And if you are using MFC, CMemFile, CArchive don't require additional header i think.
I am unsure, that you are refering stream as in C++ iostream programming, it seems.
|
|
|
|
|
In addition to the other replies...
CMemFile is a memory stream. You can use it without using CArchive.
Just create A CMemFile object, open the image file (binary mode), read chunks of bytes from
the image file and write them to the CMemFile. When you're done you can detach the
BYTE array from the CMemfile if you need to.
CMemFile is declared through afx.h, which you should have included already.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Is this of any help?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
A .NET Framework class in Visual C++/MFC forum? You're cheating, David.
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
|
|
|
|
|
Hi to All ..
Does visual studio 2005 is worked for windows Vista ..?
PLEASE suggest me
*****THANKS N ADVANCE****
Mathen.K
(I WILL TRY MY LEVEL BEST )
|
|
|
|
|
Are you asking if you could develop applications for Windows Vista using Visual Studio 2005? If so, the answer is yes. It does not matter which version of Visual Studio you are using for your development. But there are certain guidelines which you must follow in order to develop applications to be compatible with Vista.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
rowdy_vc++ wrote: Does visual studio 2005 is worked for windows Vista ..?
Mine is working
|
|
|
|
|
in my system its showing some DLL missing then i was add that DLLs and then its executed but when i click that event suddenly it was terminated ..wht was the problem it is ?
But in Windows XP its worked good...
*****THANKS N ADVANCE****
Mathen.K
(I WILL TRY MY LEVEL BEST )
|
|
|
|
|
probably installation problem. I need to assume here, it is genuine version .
rowdy_vc++ wrote: its showing some DLL missing then i was add that DLLs
thats too much, how Microsoft forget it to add in the installation.
|
|
|
|
|
Rajkumar R wrote: thats too much, how Microsoft forget it to add in the installation.
He might compile it in Debug mode, and took the binary to another PC (Vista).
Maxwell Chen
|
|
|
|
|
you mean "Microsoft Visual Studio 2005"
|
|
|
|
|
I am confused now.
Maxwell Chen
|
|
|
|
|
My Visual Studio 2005 works for Windows Vista, and even works for Windows Vista 64-bit.
Maxwell Chen
|
|
|
|
|
then how its solve that problem
*****THANKS N ADVANCE****
Mathen.K
(I WILL TRY MY LEVEL BEST )
|
|
|
|
|
Hello,
I have a great problem that move the brain of all my team. We have developped a DLL with VS2003 in C++ and a test program to test this DLL (a) - Win32 Console application. The DLL (a) uses other DLL (b). It is working fine (on XP, and Windows Server 2003)
Now I have a new version of DLL (b), so I have migrate my DLL (a) with VS2005. I've tested it and it's working fine on some PC but not on some ohter. Work on some XP machine, but never Windows Server 2003. PC where it is working fine have VS2003, VS2005 but my PC have both VS and it does not work. One more thing, I cannot compile the new solution VS2005 of the DLL (a).
Here is some code of my test program:
typedef LPCSTR DLLDIR (__stdcall *DllPlay) (LPCSTR name, LPCSTR file, ...);<br />
<br />
int _tmain(int argc, _TCHAR* argv[])<br />
{<br />
DllPlay playDll;<br />
HINSTANCE hDLL;<br />
hDLL = LoadLibrary("ReplayBox.dll");<br />
if (hDLL!=NULL)<br />
{<br />
playDll = (DllPlay) GetProcAddress(hstreamDLL, "?Play@@YGPB0K0H_NHH@Z"); <br />
if (playDll!=NULL)<br />
{<br />
printf("Play found\n");<br />
result = (playDll)("myLogin","machin.wav", ...);<br />
printf("result : %s",result); <br />
}<br />
else<br />
{<br />
printf("Play not found\n");<br />
}<br />
}<br />
else<br />
{<br />
printf("DLL not found !!!\n"); <- ERROR : GO HERE WITH VS2005 DLL !!<br />
} <br />
}
When it's failed, it is due to the fact that my DLL (a) is not found. It could come also from one of the depenedency of DLL (a) with DLL (b). All DLL and test application are in the same directory.
I do not undestand why it's not working on some machine. Help ? Advice ?
La Richesse & la Gloire ne griseront jamais que les temples
|
|
|
|
|
Merlin Tintin wrote: "?Play@@YGPB0K0H_NHH@Z"
Going from the above quote, you are using C++, and exporting a C++ function. You've noticed the name mangling, (sorry, "decorating"), and have tried to compensate for it.
This decoration is famously fragile, and you can't mix C++ exported functions with different compilers. I bet 2003 and 2005 have different decoration.
If I'm right, the fix is simple. Here is a snippet of a function I export from one of my Extendy DLLs.
extern "C" {
BOOL __declspec(dllexport) GetBusModuleDetailsW (BusModuleInformation *info, UINT nFlags);
}
BOOL __declspec(dllexport) GetBusModuleDetailsW (BusModuleInformation *info, UINT nFlags)
{
....
}
And here is how I load it:
typedef BOOL (*BUSGETMODULEINFORMATION)(BusModuleInformation *info, UINT nFlags);
....
g_hModuleBus = ::LoadLibrary (sModule);
BUSGETMODULEINFORMATION md = NULL;
if (g_hModuleBus)
{
md = (BUSGETMODULEINFORMATION) ::GetProcAddress (g_hModuleBus, "GetBusModuleDetailsW");
if (!md)
{
FreeLibrary (g_hModuleBus);
g_hModuleBus = NULL;
}
}
else
md = GetBusModuleDetailsW;
if (md)
{
(md) (&somestruct, SOME_FLAGS);
Some code has been changed, as it's not relevant to you what structures and flags do what within my software.
So, you could make your DLLs safe using extern "c" in vs2003, then compile the appropriate ones in vs2005.
Good luck,
Iain.
Iain Clarke appearing in spite of being begged not to by CPallini.
|
|
|
|
|
hDLL = LoadLibrary("ReplayBox.dll");
if (hDLL!=NULL)
{
....
}
else
{
printf("DLL not found !!!\n"); <- ERROR : GO HERE WITH VS2005 DLL !!
}
May be i understood wrongly, he was saying failed at loading library.
|
|
|
|
|
Grr me. All that typing, and for nothing! Ah well...
Iain.
Iain Clarke appearing in spite of being begged not to by CPallini.
|
|
|
|
|
Merlin Tintin wrote: so I have migrate my DLL (a) with VS2005.
Merlin Tintin wrote: One more thing, I cannot compile the new solution VS2005 of the DLL (a).
both are not matching.
Merlin Tintin wrote: hDLL = LoadLibrary("ReplayBox.dll");
when failed, what the GetLastError() returned.
|
|
|
|
|
re -
thank you for your interest. My team continues to search but without success for now...
1. I have a problem to load library - not (yet) to import functions but thanks for typing Iain
2.
Merlin Tintin wrote:
so I have migrate my DLL (a) with VS2005.
Merlin Tintin wrote:
One more thing, I cannot compile the new solution VS2005 of the DLL (a).
-> My boss has migrated the DLL on his computer and compile it. When I tried to compile his solution with VS2005, it doesn't compile.
3.
Merlin Tintin wrote:
hDLL = LoadLibrary("ReplayBox.dll");
when failed, what the GetLastError() returned.
-> error code 14001 - This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
-> not very usefull..
Regards,
La Richesse & la Gloire ne griseront jamais que les temples
|
|
|
|
|
So i assume Replay.dll is produced by the compiled version (Boss').
Merlin Tintin wrote: when failed, what the GetLastError() returned.
-> error code 14001 - This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
-> not very usefull..
just a guess, have you installed the VC Redistribute [^]
|
|
|
|
|
hello everybody !
>> just a guess, have you installed the VC Redistribute [^]
I have installed the VC Redistribute yes... But I found the problem.
You remember DLL (b) ? That was the DLL used by my DLL (a). The guy who has compiled the DLL (b) has VS2005 SP1 ! SP1 is important because it requires some other DLL to work! So, we had to check with Dependency Walker to get the dependant DLL and the manifest to get the DLL version. With a lot of research we have finally found all DLL. That's all !
I have a last problem. I still cannot compile the VS2005 project (which is a project migrated from VS2003 by my boss). I get the following error:
<br />
Error 2 fatal error C1902: Program database manager mismatch; please check your installation c:\MyProject\stdafx.cpp 1 <br />
This project compile correctly of my PC's boss. What do you think ?
Thanks for you help,
Regards,
La Richesse & la Gloire ne griseront jamais que les temples
|
|
|
|
|
Hello everyone,
I made some self-study of the possible exception from string operations. I want to let you review whether I am correct. Since I can not find any exception information from MSDN. Talking in Visual Studio STL environment is ok.
1. assignment, may throw bad_alloc?
2. comparison (compare), nothrow?
3. insert, may throw bad_alloc?
4. concatenation, may throw bad_alloc?
5. replace, may throw bad_alloc (suppose replace small sub-string to large sub-string)?
6. find (e.g. find_first_of), nothrow?
7. substr, may throw bad_alloc (sub-string is something new)?
thanks in advance,
George
|
|
|
|