|
|
I didnt do this way...I was just calling DoModal, and while debugging in the MFC code i found out that CreateDialogIndirect is failing...
|
|
|
|
|
DoModal is called on a modal dialog, and CreateDialogIndirect is used to create a modeless one; the two are quite different. Maybe it would be better if you showed exactly what you are doing and where the error occurs.
Veni, vidi, abiit domum
|
|
|
|
|
Dear Sir/Madam
Greeting Of The Day!!!
I am trying to communicate between MFC DLLs. But I got _CrtIsValidHeapPointerUserData() error and I know it is memory heap wastage problem I have done to findoutmemory leak problem from CMemoryState structure with CheckPoint. and #define new DEBUG_NEW also But Now it will give me that error at a time of FreeLibrary or accessing that's function . Plz help me
|
|
|
|
|
You need to provide some more information about where this occurs and what your code is doing. There could be any one of a million reasons for the error.
Veni, vidi, abiit domum
|
|
|
|
|
There are 2 DLL s
First DLL is XMLFILEINTERPRETAION.dll which gives us a Unicode Value and letter id of given each iscii value according to selected script(Devnagari,Gujrati,Gurmukhi,Gujarati,Bengali,Oriya,Tamil,Telugu,Malayalam and Kannada)) from xml file. letterid means English letter which typed by user using Executive keyboard.
Second DLL is DictionaryDataComputation.dll which provides us all dictionary words and we give some suggestion related to given word .And we use first dll for getting suggestions in unicode words and corresponding to english words .if these suggestions are not exist in DLL then these will be display otherwise not .and if user click on these suggestion then these add in my script Dictionary which also build in XML format.
I have used some technologies like DLL, EXE, CArray Template Collection, and MSXML2::DOMDocument for all manipulation (insertion and deletion of nodes) of xml files, Binary Recursion Search Algorithm for sorting and searching in ascending order in xml file.
Whenever I use freeLibrary function then provides this error. if I disable this functionin my code then at first time it does not give any error but this error appears in second time when we are using call DLL function of First DLL.
|
|
|
|
|
It's a reasonable guess that you have a bug in one of these libraries. You could do some debugging for yourself, or talk to the people who provide them.
Veni, vidi, abiit domum
|
|
|
|
|
I am degugging these DLLs so i could find out this reason that is occur due to FreeLibrary and below reason:
Whenever I use freeLibrary function then provides this error. if I disable this functionin my code then at first time it does not give any error but this error appears in second time when we are using call DLL function of First DLL.
|
|
|
|
|
As I said, you have a bug in either your code, or in one of the DLLs, but only you or the developer of the DLLs will be able to find it.
Veni, vidi, abiit domum
|
|
|
|
|
Actually I develop these DLL but I totally disappointed to solveout this problem
Please suggest me some helpfull reason that why is it occured?
|
|
|
|
|
The problem occurs because some code has corrupted the heap at some time, but it is impossible to know where. The only way to solve issues like this is by a lot of debugging and code profiling. There are some free tools for code profiling (Google will find them) which may help you.
Veni, vidi, abiit domum
|
|
|
|
|
start by debugging in the DLL's DllMain functions, especially in when the 'reason for the call' parameter (param #2) is DLL_THREAD_DETACH or DLL_PROCESS_DETACH.
odds are good that one DLL is trying to use something that the other DLL owns, and that that something is being destroyed before the first DLL is done using it.
|
|
|
|
|
As I recall there is a facility to check memory in real time in VC6.
It's called something like AfxCheckMemory (), and there's an option called something like checkalways, that checks your heap after every allocation/free, to pinpoint the memory corruption. (Your problem appears to be more than just a memory leak.)
Your program will run VERY slowly, but it will tell you where the error is. Search your documentation for this version to find the names of the function and option.
|
|
|
|
|
|
AfxCheckMemory () is there, but I don't see the "CheckAlways" option. As I recall, that disappeared with the first .NET version of Visual Studio, although I could be wrong.
|
|
|
|
|
Can we pass member function address in CreateThread() function instead of global function address?
|
|
|
|
|
You can pass a static member function but not an instance-specific one.
The good thing about pessimism is, that you are always either right or pleasently surprised.
|
|
|
|
|
The usual solution to the problem you're having is to pass a pointer to your class instance as the context parameter to the thread start procedure.
This way, the thread start procedure can call whatever instance method you want.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
No, we can't.
Member functions, having this as hidden parameter, cannot match the requested function signature.
Veni, vidi, vici.
|
|
|
|
|
It needs to let the current process create a copy of process and then exit current process.
I try to use the SetWindowPos(m_hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE) to set windows topmost, when first showup. So I kill the process in the taskmgr.exe and it will notify process to show a modal dialog to let user click, when click and then current process will create new process of itself and then exit current process. So a new process will showup, but I am amazing that why the topmost window is the taskmgr.
But if I click the shortcut of this application, and it will show on the topmost. I donot know where is the difference between these ways.
|
|
|
|
|
Your question doesn't really make sense (maybe because English is not your first language)... what are you trying to accomplish? Try to elaborate on what it is you're trying to have the user experience.
SetWindowPos() simply shifts the window at that time, not forever.
|
|
|
|
|
Hello.
I made a simple C++ program in Visual Studio 6 (MFC SDI). It sends a mail message using MAPI (mapi32.dll) and it works great and is easy to use.
But I don't undestannd how to attach a digital signature (stored in local certificates) to my message.
Outlook is set to add digital signature to all new messages but it ignores messages created by my C++ program.
Please help.
Best regards, Alex.
modified 7-Oct-13 10:31am.
|
|
|
|
|
Digital signature prevents email content is faked or changed in transport level. Encrypting email protects email content from exposure to inappropriate recipients. Both digital signature and email encrypting depend on digital certificate.
If you have an email digital signature certificate installed on your machine, you can find it in Control Panel-interner option-content-Certificates-Personal
Then you can use your email certificate to sign the email by the following code. If you don't have a certificate for your email address, you MUST get a digital certificate for personal email protection from third-party certificate authorities such as www.verisign.com.
#include "stdafx.h"
#include "easendmailobj.tlh"
using namespace EASendMailObjLib;
int _tmain(int argc, _TCHAR* argv[])
{
::CoInitialize( NULL );
IMailPtr oSmtp = NULL;
oSmtp.CreateInstance( "EASendMailObj.Mail");
oSmtp->LicenseCode = _T("TryIt");
// Set your sender email address
oSmtp->FromAddr = _T("test@emailarchitect.net");
// Add recipient email address
oSmtp->AddRecipientEx( _T("support@emailarchitect.net"), 0 );
// Set email subject
oSmtp->Subject = _T("email from Visual C++ with digital signature(S/MIME)");
// Set email body
oSmtp->BodyText = _T("this is a test email sent from Visual C++ with digital signature");
// Your SMTP server address
oSmtp->ServerAddr = _T("smtp.emailarchitect.net");
// User and password for ESMTP authentication, if your server doesn't
// require User authentication, please remove the following codes.
oSmtp->UserName = _T("test@emailarchitect.net");
oSmtp->Password = _T("testpassword");
// If your SMTP server requires SSL connection, please add this line
//oSmtp->SSL_init();
// Add signer digital signature
if( oSmtp->SignerCert->FindSubject(_T("test@emailarchitect.net"),
CERT_SYSTEM_STORE_CURRENT_USER , _T("my")) == VARIANT_FALSE )
{
_tprintf(_T("Error with signer certificate; %s\r\n"),
(const TCHAR*)oSmtp->SignerCert->GetLastError());
return 0;
}
if( oSmtp->SignerCert->HasPrivateKey == VARIANT_FALSE )
{
_tprintf(_T("certificate does not have a private key, it can not sign email.\r\n" ));
return 0;
}
_tprintf(_T("Start to send email ...\r\n" ));
if( oSmtp->SendMail() == 0 )
{
_tprintf( _T("email was sent successfully!\r\n"));
}
else
{
_tprintf( _T("failed to send email with the following error: %s\r\n"),
(const TCHAR*)oSmtp->GetLastErrDescription());
}
if( oSmtp != NULL )
oSmtp.Release();
return 0;
}
|
|
|
|
|
Hi there.
I am looking for a simple, basic, preferable a C way of parsing multipart/form-data POST request from a client browser. So far I have a really simple web server, which reads web browser requests in a loop and prints them to to command prompt window:
do
{
len = recv(..., input_buf, ...);
}
while (!strstr(input_buf, "\r\n\r\n") && len > 0);
char * pch = nullptr, *context = nullptr;
pch = strtok_s(input_buf, "\r\n", &context);
while (pch != nullptr)
{
::puts(pch);
pch = strtok_s (nullptr, "\r\n", &context);
}
When this web server starts, it just shows the following web form to the web browser:
<form type=multipart/form-data method=post action=submit><input type=file multiple required /><input type=submit /></form>
So far so good, ok, I connect to my server with firefox, select some test text file, which is a really small one - just a couple of bytes and hit an html form submit button. Server reads request and I have the following output in command prompt window:
POST /submit HTTP/1.1
Host: localhost:6666
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Firefox/
24.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost:6666/
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
But the question is, how do I get file data? I was reading tons of online docs, when it says something about boundary strings - I have no idea what are boundary strings. I am just trying to figure out how to grab raw bytes file data. I cannot use any 3rd party libraries. And what concerns me, is that Content-Length is zero - seems like file was not transferred at all
Can anyone help me with this?
Thanks in advance
011011010110000101100011011010000110100101101110
0110010101110011
|
|
|
|
|
Figured it out - there is an error in my html form, it should be enctype , not type . Now I have a file content.
011011010110000101100011011010000110100101101110
0110010101110011
|
|
|
|
|