|
Sorry about that. I have not visited that site for a long time.
Maybe you need to write your own code for that.
|
|
|
|
|
In fact, Paul DiLascia's sample program is available from Microsoft's website:
http://www.microsoft.com/msj/0299/c/c0299.aspx[^]
Click on the link at "code for this article", you will be able to download a ready to use code for tray icon manipulations. The second question in that article is about tray icons.
|
|
|
|
|
|
See here. The article itself is not about this topic, but the code is downloadable and easy to understand."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
|
|
|
|
|
Quite a few articles here on CodeProject; always the best place to search first. txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|
|
I was reading on the microsoft website how to encode a string of char [], this is my output:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char EncString[] = "My name is Branden";
char key = 128;
cout << "Your string of text: " << EncString << endl;
for ( int i = 0 ; i < strlen(EncString) ; i++ )
EncString[i] = EncString[i] ^ key;
cout << "Encoded text : " << EncString << endl;
for ( int i = 0 ; i < strlen(EncString) ; i++ )
EncString[i] = EncString[i] ^ key;
cout << "Decoded text : " << EncString << endl;
_getch();
return 0;
}
I dont understand what '^' is, I know i have key declared as 128bits i guess, but the ^ operator throws me off. What is ^ specific function?
|
|
|
|
|
|
Herboren wrote: I dont understand what '^' is,
It's bitwise XOR operator
|
|
|
|
|
this is what i understand, it compares each bit of its first operand to the corresponding bit of the second operand.
but when I change the value of "key" from say 128 to 8, it comes out a totally different encoded string, why is that?
|
|
|
|
|
Encode 0x20 using Key 00000001:
0x20 = 0010 0000 XOR 00000001 = 00100001
to deccode do the XOR again:
00100001 XOR 00000001 = 0010 0000
But change key from 00000001 to 10000000 and you get:
0x20 = 0010 0000 XOR 10000000 = 10100000
to decode do the XOR again:
10100000 XOR 10000000 = 0010 0000
So a different Key gives a different encoded value but decodes using the same key to the original value.
|
|
|
|
|
So its just matching The string to a mixed ascii string and saving the key sequence for remembering it later.
|
|
|
|
|
Okay well i have another program that I just made and im still trying to figure out how this progam is getting the binary conversion:
#include "stdafx.h"
#include <conio.h>
using namespace std;
void Show_Binary(unsigned int u);
int _tmain(int argc, _TCHAR* argv[])
{
int i;
cout << "Enter a number between 1 - 255: "; cin >> i;
cout << "Your number in BINARY is : "; Show_Binary(i);
_getch();
return 0;
}
void Show_Binary(unsigned int u)
{
int t;
for ( t = 128; t > 0; t = t / 2 )
if (u & t) cout << "1 "; else
cout << "0 ";
cout << endl;
}
as u can see I have been trying to figure it out myself in the comment below, but the 't = t / 2' is throwing me off, I understand the t = 128, using the binary scale: 128 64 32 16 8 4 2 1, but how its checking it, is whats confusing me, I understand the if statements but when if just sits there with the 'if ( u & t)' im asking myself "wtf is if asking, is it equal to, is it less than more than dammit 'if' tell me what your evil plot is!" lol
|
|
|
|
|
It is trying to extract each bit out and show it on screen. In the language, the number 0 is understood as 'false', the number 1 is understood as 'true'. Hope you get the idea.
|
|
|
|
|
Ok so its extracting the bit itself, like 8bits equals =1byte sort of thing and each bit within those 8bits dont match it comes out as false otherwise true and its not matching the actual value that the user input
True>
User input: 2
Binary: 0000010
Match: 00000010
128 64 32 16 8 4 2 1
False False False False False False True False
correct?
False>
128 64 32 16 8 4 2 1
2
incorrectmodified on Thursday, March 11, 2010 3:54 PM
|
|
|
|
|
What a mess!
The key is for you to remember so you can decode an encoded text to get the original text. Different keys will produce different encoded text. For somebody who don't know the key you used to encode a string, he will have a hard time (not very hard for your algorithm, though) to decode to get the original text.
|
|
|
|
|
So if this were a GUI app asking for a certain to decode txt, he/she would need that key, I see thats actually really cool, I like how that works, arent there popular programs like that required user specific keys to decode the text?
|
|
|
|
|
'Matching' is a bit of a vague term to use, it's XORing each character of the string in turn with the key
for ( int i = 0 ; i < strlen(EncString) ; i++ )
EncString[i] = EncString[i] ^ key;
and replacing the character EncString[i] with the encoded character EncString[i] ^ key .
|
|
|
|
|
for ( int i = 0 ; i < strlen(EncString) ; i++ )
EncString[i] = EncString[i] ^ key;
I gotcha this is how I knew
char EncString[] = "My String of text";
Your string of text: My String of text
Encoded text : ═∙á╙⌠≥Θετá∩µá⌠σ°⌠
Decoded text : My String of text
char EncString[] = "My ";
Your string of text: My
Encoded text : ═∙á
Decoded text : My
'═∙á' match as long as the key bit stayed the same unless I changed its value
|
|
|
|
|
I am new in cryptography. I found that .NET has good support for cryptography. Are there similar Win32 API or MFC classes I can use in native C++ code? Best,
Jun
|
|
|
|
|
|
MSDN has information here[^] on support for cryptography. txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|
|
Have a look at the CryptEncode/CryptDecrypt functions.
|
|
|
|
|
I am just asking for an opinion / verification of my code approach.
All my references (#include and DLL) are functioning as expected.
I am using MFC extension DLL and operator new in main application constructor:
COpenHRApp::COpenHRApp()
{
TRACE("COpenHRApp::COpenHRApp()\n");
pLog = new OpenHR_Log ; // initialize Log DLL
pSerial = new OpenHR_Serial; // serial communication test
pRegistry = new OpenHR_Registry; // registry access
TRACE("COpenHRApp::COpenHRApp()\n");
}
Here is the initial debug trace:
Loaded 'D:\WINNT\system32\ntdll.dll', no matching symbolic information found.
Loaded symbols for 'R:\0\HR\DLL\V1\OpenHR\Debug\OpenHR__DLL_Log.dll'
Loaded symbols for 'D:\WINNT\system32\MFC42D.DLL'
Loaded symbols for 'D:\WINNT\system32\MSVCRTD.DLL'
Loaded 'D:\WINNT\system32\KERNEL32.DLL', no matching symbolic information found.
Loaded 'D:\WINNT\system32\GDI32.DLL', no matching symbolic information found.
Loaded 'D:\WINNT\system32\USER32.DLL', no matching symbolic information found.
Loaded symbols for 'R:\0\HR\DLL\V1\OpenHR\Debug\OpenHR__DLL_Serial.dll'
Loaded symbols for 'R:\0\HR\DLL\V1\OpenHR\Debug\OpenHR__DLL_Registry.dll'
Loaded symbols for 'R:\0\HR\DLL\V1\OpenHR\Debug\OpenHR__DLL_Main_Ext.dll'
Loaded symbols for 'D:\WINNT\system32\MFCO42D.DLL'
OPENHR__DLL_LOG.DLL Initializing!
OPENHR__DLL_SERIAL.DLL Initializing!
OPENHR__DLL_REGISTRY.DLL Initializing!
OPENHR__DLL_MAIN_EXT.DLL Initializing!
COpenHRApp::COpenHRApp()
CopenHRApp::COpenHRApp()
One question– I did not add any DDL .lib references to my project setting and so far everything is working as expected.
Any comments on that?
As always I appreciate your help and time.
Thanks
Vaclav
|
|
|
|
|
Vaclav_Sal wrote: I did not add any DDL .lib references to my project setting...
There are three (known for me) ways to the success :
- lib is included in the project tree of your application
- lib is referenced by #pragma comment(lib, "...")
- lib is set in the projects settings
P.S. try to call a non-inline method of a new result virtual void BeHappy() = 0;
modified on Thursday, March 11, 2010 11:03 AM
|
|
|
|
|
Hi all,
How to close the child process when parent process crashes?
thanks,
|
|
|
|