|
Oh, I fogot...
You can download my test example (that shows flashing) here: http://MozgC.info/test.zip
|
|
|
|
|
your are not using MFC.
file --> new --> project --> visual c++ project --> mfc --> mfc aplication.
choose aplication type ...
choose dialog
after creating a new project
go to recource explorer and click on dialog
and draw your control and they don't flikker or flash
i think u choose win32 project.
kind regards,
marco
Bad = knowing 2 much
|
|
|
|
|
I am not using MFC? =)
Have u seen my test example?
class CMyWnd : public CFrameWnd
{
public:
CMyWnd(char *Title);
~CMyWnd();
private:
CStatic *Label;
CButton *Button;
CStatusBar *StatusBar;
CEdit *Edit;
CTabCtrl *TabControl;
};
Aren't these MFC classes? =)
As for mfc application -> Dialog based - Of course it will not flash - Dialog can not be resized, and I said that it flashes on resizing...
Any other ideas?
|
|
|
|
|
here are some nice program for to study.
www.pablovandermeer.nl
1 project is about resizing dialogs
kind regards,
marco
Bad = knowing 2 much
|
|
|
|
|
Anyone out there with good edge linking algorithm in visual c++. Usually , using edge detector will produce broken edges or false edges. i need an algorith or sourcecode that will link up all the broken edges especially the broken edges of an outerboundary object.
Anyone with source code is greatly appreciated? anyone plx help me out here.
|
|
|
|
|
I have a dll that is kicked off by a number of processes. I have identified which one but when I run it in msvs6.0 I get a stack exception before it activates any of my debug points which are at the beginning of each entry routine. All I get is an assembled view of the exception with an offset address into the dll. When I look at the call trace it just shows the same offset but doesn't show what entry was called. Is there anyway to know the address of each entry point? How do I get where the exception is occurring within the code without it being so cryptic? I know it is not a bad parm because all the parms are passed by the calling process. These are the exact same parms passed by the other processes that work. I can even suspect which entry point is being called but I don't see anything in there that would cause a problem. The code was written in c and runs on multiple platforms but only fails on windows.
|
|
|
|
|
Have you tried to set a breakpoint in DllMain?
|
|
|
|
|
HI
I have a memory leak in my programm. I have tried hard but not been able to solve it. I m putting the whole code that is causing memory leak. Can you show me some idea where is the possibility of memory leak.????
My code goes here....
------------------------------------------
// File matools.cpp
typedef unsigned char Byte;
typedef unsigned int uInt;
typedef unsigned long uLong;
int CompressData (char* sIn, char* sKey, char** sOut, long* lOutlen)
{
Byte *compr, *uncompr;
uLong comprLen = 16384*sizeof(int); /* don't overflow on MSDOS */
uLong uncomprLen = comprLen;
static const char* myVersion = ZLIB_VERSION;
if (zlibVersion()[0] != myVersion[0])
return -1;
compr = (Byte*) new uInt[comprLen];
uncompr = (Byte*) new uInt[uncomprLen];
//End lines by Mahesh
if (compr == Z_NULL || uncompr == Z_NULL)
{
// Line added by Mahesh
//What if compr is NULL and uncompr is not NULL....no indication for it....
delete [] compr; //free(compr);
delete [] uncompr; //free(uncompr);
// End of line added by Mahesh
return -2;
}
uncomprLen = strlen (sIn);
int iResult = test_compress(compr, &comprLen, (Bytef*)sIn, uncomprLen);
if (iResult != 0)
{
// Line added by Mahesh
//What if compr is NULL and uncompr is not NULL....no indication for it....
uncomprLen = 0;
delete [] compr; //free(compr);
delete [] uncompr; //free(uncompr);
// End of line added by Mahesh
return -3;
}
byte *buffer, key[32];
unsigned int bufLen;
unsigned int err;
ailaes demo;
char s2[33] = "";
int len = strlen(sKey);
if (len > 64)
len = 64;
for (int i = 0, j = 0; i < len; i ++, j ++)
{
char sTemp[2] = "";
sTemp[0] = sKey[i];
sTemp[1] = 0;
int c = 0;
if (!stricmp(sTemp, "0") || !stricmp(sTemp, "1") || !stricmp(sTemp, "2") || !stricmp(sTemp, "3") || !stricmp(sTemp, "4") || !stricmp(sTemp, "5") || !stricmp(sTemp, "6") || !stricmp(sTemp, "7") || !stricmp(sTemp, "8") || !stricmp(sTemp, "9"))
c = atol(sTemp) * 16;
else if (!stricmp(sTemp, "A") || !stricmp(sTemp, "a"))
c = 10 * 16;
else if (!stricmp(sTemp, "B") || !stricmp(sTemp, "b"))
c = 11 * 16;
else if (!stricmp(sTemp, "C") || !stricmp(sTemp, "c"))
c = 12 * 16;
else if (!stricmp(sTemp, "D") || !stricmp(sTemp, "d"))
c = 13 * 16;
else if (!stricmp(sTemp, "E") || !stricmp(sTemp, "e"))
c = 14 * 16;
else if (!stricmp(sTemp, "F") || !stricmp(sTemp, "f"))
c = 15 * 16;
sTemp[0] = sKey[i + 1];
sTemp[1] = 0;
i ++;
if (!stricmp(sTemp, "0") || !stricmp(sTemp, "1") || !stricmp(sTemp, "2") || !stricmp(sTemp, "3") || !stricmp(sTemp, "4") || !stricmp(sTemp, "5") || !stricmp(sTemp, "6") || !stricmp(sTemp, "7") || !stricmp(sTemp, "8") || !stricmp(sTemp, "9"))
c += atol(sTemp);
else if (!stricmp(sTemp, "A") || !stricmp(sTemp, "a"))
c += 10;
else if (!stricmp(sTemp, "B") || !stricmp(sTemp, "b"))
c += 11;
else if (!stricmp(sTemp, "C") || !stricmp(sTemp, "c"))
c += 12;
else if (!stricmp(sTemp, "D") || !stricmp(sTemp, "d"))
c += 13;
else if (!stricmp(sTemp, "E") || !stricmp(sTemp, "e"))
c += 14;
else if (!stricmp(sTemp, "F") || !stricmp(sTemp, "f"))
c += 15;
s2[j] = c;
}
s2[j] = 0;
// pad out the input string to be an even block size
// Line Added My Mahesh Amarelia 02/09/04
// Memory allocated to the variable "*b" in strToBlock() has not been freed...
err = demo.strToBlock((char*)compr, comprLen, &buffer, &bufLen);
memmove(key, s2, 32);
demo.init(CBC, key);
// encript the buffer
err = demo.encrypt(buffer, bufLen);
if (err != 0)
{
// Line added by Mahesh
//What if compr is NULL and uncompr is not NULL....no indication for it....
uncomprLen = 0;
free (buffer);
delete [] compr; //free(compr);
delete [] uncompr; //free(uncompr);
// End of line added by Mahesh
return -4;
}
// encode the crypto buffer so it can pass as a null terminated string
*sOut = ESCencode( (char*)buffer, bufLen);
*lOutlen = strlen(*sOut);
//Lines added by Mahesh
delete [] buffer;
delete [] compr;
delete [] uncompr;
buffer = NULL;
compr = NULL;
uncompr = NULL;
return 1;
}
static char* ESCencode(char* sIn, long sLen)
{
char* sOut, *s;
long i,j, len, grow;
char c;
// determine len of encoded str
len = sLen;
for(i=0, s=sIn, grow=0; i<len; i++, s++)
if(*s == ESC || *s == ZERO || *s == 0x0d) //<<< new stuff here
grow++;
// len += (2 * grow);
len += grow;
// <AES_Encode> </AES_Encode>
/*****************************************/
/********* this is line number 309 ******/
sOut = new char[len + 1 + 25]; // Here sOut is not been freed after allocating memory
sOut[0] = '<';
sOut[1] = 'A';
sOut[2] = 'E';
sOut[3] = 'S';
sOut[4] = '_';
sOut[5] = 'E';
sOut[6] = 'n';
sOut[7] = 'c';
sOut[8] = 'o';
sOut[9] = 'd';
sOut[10] = 'e';
sOut[11] = '>';
for(i=0, j=12; j<(len + 12); i++)
switch(c = sIn[i]){
case NULL:
sOut[j++] = ZERO;
break;
case 0x0d: //<<< new stuff here
sOut[j++] = ESC;
sOut[j++] = mCR;
break;
case ZERO:
case ESC:
///Insert:
sOut[j++] = ESC;
// fall thru intended
default:
sOut[j++] = c;
break;
}
sOut[j++] = '<';
sOut[j++] = '/';
sOut[j++] = 'A';
sOut[j++] = 'E';
sOut[j++] = 'S';
sOut[j++] = '_';
sOut[j++] = 'E';
sOut[j++] = 'n';
sOut[j++] = 'c';
sOut[j++] = 'o';
sOut[j++] = 'd';
sOut[j++] = 'e';
sOut[j++] = '>';
// make sure it is null terminated
sOut[j++] = NULL;
return sOut;
}
The output that I get I use _CrtDumpMemoryLeaks() functions is as following :
-----------------------------------------------------------------------------
Detected memory leaks!
Dumping objects ->
c:\temp\matools\matools.cpp(310) : {58} normal block at 0x009F0530, 1095 bytes long.
Data: <<AES_Encode>j[L > 3C 41 45 53 5F 45 6E 63 6F 64 65 3E 6A 5B 4C F9
{46} normal block at 0x00861E20, 33 bytes long.
Data: < C > 00 43 00 CD CD CD CD CD CD CD CD CD CD CD CD CD
{45} normal block at 0x00861E70, 40 bytes long.
Data: < K > D0 10 4B 00 19 00 00 00 00 00 00 00 00 00 00 00
Object dump complete.
--------------------
Mike
|
|
|
|
|
c:\temp\matools\matools.cpp(310)
what is at this line number. Are you creating an object that you should be deleting later?
Also, make sure you are not corrupting memory or the stack in one of you loops. Check for boundary conditions.
|
|
|
|
|
Hello Sir
Thankx for taking time for my problem.
I have already written what is the line number 310 by comment...Still I am writing this again here....For whole code you can just look it back to my problem on Codeproject at http://www.codeproject.com/script/comments/forums.asp?msg=960928&forumid=1647#xx960928xx
Line number 310 and onwards....
------------------------------
sOut = new char[len + 1 + 25]; // Here sOut is not been freed after allocating memory
sOut[0] = '<';
sOut[1] = 'A';
sOut[2] = 'E';
sOut[3] = 'S';
sOut[4] = '_';
sOut[5] = 'E';
sOut[6] = 'n';
sOut[7] = 'c';
sOut[8] = 'o';
sOut[9] = 'd';
sOut[10] = 'e';
sOut[11] = '>';
.
.
.
Regards
Mahesh
|
|
|
|
|
As your procedure returns the sOut char * pointer, its now the responsibility of the callee to delete the memory. TYpically what you are doing here is bad practice as you have to remember to delete it. If you returned an std::vector<char> then if it was not used its desturctore would be called and it would delete itself thus avoiding the leak problem.
std::vector<char> sOut;
sOut.resize(len + 1 + 25);
...
return sOut;
If you vote me down, my score will only get lower
|
|
|
|
|
Hi
I have developed one simple DLL in VC++ as Project->New->Win32 Dynamic Link Library->An empty DLL project......
Now there is some Memory Leak in my DLL. But I don't know how to trace it and which functions or line is making memory leak.
All the programm to find Memory Leak I found is for EXE only....
So someone suggested me to go for IBM's Rational Purify Evaluation for windows. I use Windows 2000 Professional as OS. I downloaded it but it is asking for Licence Key ...and I am not able to go ahead from here....any suggestion please....Or any other software such as this...?
Pls help me out
Regards
Mahesh
|
|
|
|
|
Hi,
Usually what they'll do is they'll send a licence key 2 your email id after download itself. So check @ their site itself or drop a mail to their support division.They will surely help you.
Sujan
|
|
|
|
|
Das ist super hier! leider auf englich, weiss jemand von einer deutchen variante?
LG
Gregor
|
|
|
|
|
|
Erkenntnisse zur DLL-Programmierung
Wenn man eine exportierte Klasse verwendet kann man diese nicht mithilfe von LoadLibrary und GetProcAdress nutzen. Klassen muss man über Load Time Linking verwenden, nicht über Run Time Linking. Eine Mischung aus Load Time Linking und Run Time Linking kann aber dennoch verwendet werden. Funktionen (in der DLL), die nicht Memberfunktionen von Klassen sind, lassen sich gleichzeitig über Run Time Linking ansprechen. Doch das ist dann ja sowioeso überflüssig, da alle Vorteile des Run Time Linking dahin sind.
Wenn die Funktion LoadLibrary Namen die vorhanden sind nicht findet, könnte das daran liegen, dass die Namen beim Compilieren und Linken verändert werden. Da wird zum Beispiel aus fnMyTREE dann ?fnMyTREE@@3HA. Zwei mögliche Lösungen: 1. Kann man per .DEF-Datei die korrekten (ursprünglichen) Namen vorschreiben, hier können sogar Aliase vergeben werden! 2. Kann man den veränderten Namen einfach in der GetProcAdress-Funktion verwenden: GetProcAddress(hinst,"?fnMyTREE@@3HA"); Das klappt!
Ich suche noch folgende Info´s:
Weiss irgendjemand von einem Script, das beschreibt, wie man DLL´s prinzipiell verwendet. Also Fragen zur Programmiertechnik wie z.B.:
Sollte ich eine DLL-interne Klasse in der Entry-Funktion allokieren?
Sollte man eine Kontroll-Klasse gänzlich der Aussenwelt verbergen?
Wer kennt sinnvolle Konstrukte oder mag mir mal seine Programmiermethoden offenbaren.
Wo findet man Codebeispiele zu diesem Thema?
|
|
|
|
|
I've already posted similar question... but i still got this problem: i would like to rotate a char around it's center. I tried to use SetTextAlign, but it alligns the text only on top-center, or bottom-center, everything is not what i need... Who can help me with this question???
And how to get the width and the height of the char, that i try to write on my context device using GDI+??? where the similar function of GetTextExtent???
|
|
|
|
|
Hi all,
Is there any way to check whether a stored procedure is present in the Database or not. Iam using SQL Server as the db and using ADO 4 programming using MS VC++ 6.0
Thanx in advance
Sujan
Note: I KNOW THAT WE CAN CHECK IT USING TRY-CATCH,IS THERE ANY OTHER WAY OTHER THAN THIS
|
|
|
|
|
use the same query that the SQL generator to see if the stored procedure is there. It is a query of dbo.master.sysobjects.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Hi Tim,
Thanx a Lot i'll work with it. Sorry for replying late coz yesterday i not @ the office.
Thanx a Lot
Sujan
|
|
|
|
|
Hi,
Could anyone get me the sample code for check mail and download the attachment to local path in Visual C++.
Thanks in Advance
Be simple and Be sample.
|
|
|
|
|
from Where Buddy
-----------------------------
"I Think It Will Help"
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
Hi,
From where. If it is from Inet, you have use the CInternet session and its related classes, if it is from Outlook express then you have to use Outlook automation.
Sujan
|
|
|
|
|
hi,
I need to check mail from Internet. How could i use CInternet session, is there any sample.
I need to create an MFC application to show all the mails from internet. I can provide pop address, userid and password. My application should download all the messages in that with full details (subject, from whom it comes, attached file etc...)
simply, I need to create MFC application similar to that of outlook but in my own format....
Thanks
Be simple and Be sample.
|
|
|
|
|
Hi,
i had created an appln like this long time back. So i have to search for it.
But for now have a look @ the following link
http://visualcpp.net/index.php?qID=35
This will surely help you to start working with.
Best of luck
Sujan
|
|
|
|
|