|
You are welcome.
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]
|
|
|
|
|
Hi all,
i want to combine all my files into a single file.
How can i do it.
Thanks in advance
|
|
|
|
|
You can do this from the command prompt using the command copy *.* newfile .
To do this programatically, open the destination file for writing using CreateFile .
Use FindFirstFile / FindNextFile to enumerate each file in the folder.
For each file found use CreateFile to open the file for reading.
Call ReadFile to read the entire contents of the file for reading and then use WriteFile on the destination file to write the contents that were read.
|
|
|
|
|
If you're using C++ you can combine files fairly easily. Open each one as an istream, open the destination file as an ofstream and then insert the streambufs of the input files to the destination file.
Something like:
std::ifstream a( "c:\\a.txt" );
std::ifstream b( "c:\\b.txt" );
std::ofstream c( "c:\\c.txt" );
c << a.rdbuf() << b.rdbuf();
will concatenate a.txt and b.txt and dump them in c.txt. It saves loads of tedious mucking about with C functions or Windows API functions.
Cheers,
Ash
|
|
|
|
|
Hello to all,
In my project I am sending email with attachment of jpeg image. I am using following user defined function in which logic of sending mail is written,
In foolowing function
lpszSubject = subject of mail
lpszTo = email address to whom u want to send mail
lpszName = name of person to whom u want to send mail
lpszText = email text
lpszFullFileName = path of the jpeg file to be attached
BOOL SendFile(LPCSTR lpszSubject, LPCSTR lpszTo,
LPCSTR lpszName, LPCSTR lpszText,
LPCSTR lpszFullFileName)
{
HINSTANCE hMAPI = ::LoadLibrary("mapi32.dll");
LPMAPISENDMAIL lpfnMAPISendMail =
(LPMAPISENDMAIL)::GetProcAddress(hMAPI, "MAPISendMail");
char szDrive[_MAX_DRIVE] = { 0 };
char szDir[_MAX_DIR] = { 0 };
char szName[_MAX_FNAME] = { 0 };
char szExt[_MAX_EXT] = { 0 };
char szFileName[MAX_PATH] = { 0 };
strcat(szFileName, szName);
strcat(szFileName, szExt);
char szFullFileName[MAX_PATH] = { 0 };
strcat(szFullFileName, lpszFullFileName);
MapiFileDesc MAPIfile = { 0 };
ZeroMemory(&MAPIfile, sizeof(MapiFileDesc));
MAPIfile.nPosition = -1;
MAPIfile.lpszPathName = szFullFileName;
MAPIfile.lpszFileName = szFileName;
char szTo[MAX_PATH] = { 0 };
strcat(szTo, lpszTo);
char szNameTo[MAX_PATH] = { 0 };
strcat(szNameTo, lpszName);
MapiRecipDesc recipient = { 0 };
recipient.ulRecipClass = MAPI_TO;
recipient.lpszAddress = szTo;
recipient.lpszName = szNameTo;
char szSubject[MAX_PATH] = { 0 };
strcat(szSubject, lpszSubject);
char szText[MAX_PATH] = { 0 };
strcat(szText, lpszText);
MapiMessage MAPImsg = { 0 };
MAPImsg.lpszSubject = szSubject;
MAPImsg.lpRecips = &recipient;
MAPImsg.nRecipCount = 1;
MAPImsg.lpszNoteText = szText;
MAPImsg.nFileCount = 1;
MAPImsg.lpFiles = &MAPIfile;
ULONG nSent = lpfnMAPISendMail(0, 0, &MAPImsg, NULL, 0);
FreeLibrary(hMAPI);
return (nSent == SUCCESS_SUCCESS || nSent == MAPI_E_USER_ABORT);
}
Now everything is working fine but I am getting some surprising results as below
(1)If at the sending side user is using Outlook Express then email goes with attachment perfectly at the receiving side on any mail client
(2)But if at the sending side user is using Microsoft Office Outlook then email goes but attachment is missing at receiving side. If at the receiving side also Microsoft Office Outlook is there then only we get the attachment.
Means in short from Microsoft Office Outlook to Microsoft Office Outlook email goes with attachment at receiving side.
but from Microsoft Office Outlook to other mail client (other than Microsoft Office Outlook) attachment is missing at receiving side.
Please anyone can tell me what I am missing in my code and how to solve this problem. It is really very very urgent so please help me out.
Thanks and Regards,
Anay
|
|
|
|
|
AnayKulkarni wrote: (2)But if at the sending side user is using Microsoft Office Outlook then email goes but attachment is missing at receiving side.
What type of attachment?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
I hear that the memory pool can improve the performance. It means that allocate a block of memory and then new the class object in this memory block, but how to make the thread safe and proceeding safe?
modified on Wednesday, September 22, 2010 11:10 AM
|
|
|
|
|
A memory pool (implemented as a custom allocator or overiding new/delete for a class) can improve speed a lot. HOWEVER before you do make sure that your app is actually eating up loads of execution time in the ordinary allocator before doing anything about it. I've seen plenty of people mess about and spend ages optimising allocators and get nothing concrete out of it.
If you decide to use a custom allocator then you make it thread safe the way you do any other object - use a synchronisation object and lock it when doing any operations on the object. Incidentally I've seen the cost of synchronisation wipe out any benefit a custom allocator gives you, so again make sure you're just not replacing a runtime library bottleneck with a carefully crafted homemade one.
There are ways you can reduce locking bottlenecks from an allocator but you start needing to use multiple arenas to allocate from and switch between them on each allocation. This can then start messing up locality of reference (unless you manage interleaved arenas) and again slow everything down again.
Anyway, the point I'm really making here is measure how long your app spends in the allocator. If it's taking an appreciable length of time consider using a third party custom allocator or implementation of new and delete and only write your own if it's still not fast enough.
Another idea would be to use a garbage collector - if you google "Hans" "Boehm" and "garbage collection" you can find a decent one (if you like that sort of thing) that's written by one of the luminaries of the C++ standards committee. Garbage collection has the advantage that when you delete objects the memory is not immediately freed and is recovered in one fell swoop later by the garbage collector reducing contention for the allocator when releasing objects.
Cheers,
Ash
modified on Monday, September 20, 2010 7:05 AM
|
|
|
|
|
good answer.
I've bumped (5-ved) the question also.
Watched code never compiles.
|
|
|
|
|
Thanks for the reply.
I've given the questioner a five as well - normally I wouldn't but in this case his question didn't deserve the one someone else gave him so I'm attempting to be karmic.
Cheers,
Ash
|
|
|
|
|
Override the new/delete operators and use "placement new" syntax to alloc in a predetermined location, managed by you.
onwards and upwards...
|
|
|
|
|
If you take the memory from your own Win32 Heap, then it is already thread-safe. See HeapCreate.
|
|
|
|
|
I find that I could not distinguish the synchronization from the block, and asynchronism from no-block.
when use the synchronization to socket with the server, it must be block model. How to achieve it with the non-block model?
|
|
|
|
|
I don't understand your question. You probably mean synchronisation in the context of multi threading, with non-blocking sockets (asynchronous networking) you typically have a single threaded application.
/M
|
|
|
|
|
Thanks for your reply. It not multi-thread, it is using socket. I do not know the different between synchronization and block.
|
|
|
|
|
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007Luna_Blue);
this code is set my program's color blue.
but I want red or another.
How to create a style by myself?
How to change the style that vs2008 feature pack?
thanks!
|
|
|
|
|
Hi everyone ! Do anybody know ( because I took from here many useful links ) an auto complete control implementation of CEdit or CComboBx control ? I found HEREsomething interesting , but not working on SDI/MDI application , so is in vain , and autocomplete implementation is based on CList , not on CListCtrl ... any hint or link will be very appreciated ! Thanks in advance !
|
|
|
|
|
|
Thanks , first sample is allready implemented , second is not quite what I need ... I keep search , or , if I can , I buld myself ... thanks again !
|
|
|
|
|
i am a newbie and creating a project in c language on windows platform.
i am trying to develop a small application using winAPI 32. I am taking online tutorial from winprog.org ,in my tutorial i am creating a window from a given code but when i run the code ,my window name appearsll to be in different language .The code i used is given below. I am not able to understand why this sia happening . please help me .. I am using vc++ express edition 2008 on window 7.
i'll be very thankful to you.
#include <windows.h>
const char g_szClassName[] = "myWindowClass";
// Step 4: the Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
//Step 1: Registering the Window Class
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
// Step 2: Creating the Window
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"The title of my window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);
if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// Step 3: The Message Loop
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
|
|
|
|
|
Always use code block and paste ur code in betweenthat block. code block is right on the text field where you write your question. Number of people answering you question, will dramatically change. TRUST ME.
|
|
|
|
|
right.
|
|
|
|
|
You might find the properly formatted code cross posted in the QA...
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]
|
|
|
|
|
See, that is a problem with editable posts: the enquirer did not format properly in Q&A, someone cleaned it up, and the enquirer probably didn't learn a thing; he may get an answer and never figure how to use PRE tags.
|
|
|
|
|
Yes, no HTML , but see the positive side: he might go on and probably learn a bit of software development.
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]
|
|
|
|
|