|
Does that mean the system allocates with 2^31 bytes of memory space for it whenever I create a CString object? If so, is it not a good idea to using CStrings if I know the string has only few hundred bytes long?
Thanks
|
|
|
|
|
J.B. wrote:
Does that mean the system allocates with 2^31 bytes of memory space for it whenever I create a CString object?
Only if it needs to. Check out how memory is allocated in CString::AllocBuffer() .
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hi, I am a newbie in Visual C++ Programming concerning MFCs. I'm just wondering what the difference is between string and CString?
Strings have strcpy, strlen, etc, etc... So what are its counterparts for CStrings? What are the different ways of manipulating CStrings?
Thank you so much in advance
|
|
|
|
|
Equivalents:
C CString<br />
strcpy: =<br />
strlen: cs.GetLength()<br />
strcat: +=<br />
strlwr: cs.MakeLower()
Best regards
|
|
|
|
|
Thank you so much
I have another question... Do you guys know what command is used in order to check if a certain character can be found in a string?
I have searched through the net and found out that there is such a thing as Find for CStrings, although everytime I add #include "CString.h" which is necessary to use find, it doesn't work and only produce errors...
How do you use the commnad Find or is there any other way to check if a character can be fond in a CString?
Thank you once again
|
|
|
|
|
CString::Find
MSDN:
// First example demonstrating
// CString::Find ( TCHAR ch )
CString s( "abcdef" );
ASSERT( s.Find( 'c' ) == 2 );
ASSERT( s.Find( "de" ) == 3 );
// Second example demonstrating
// CString::Find( TCHAR ch, int nStart )
CString str("The stars are aligned");
int n = str.Find('e', 5);
ASSERT(n == 12);
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
Are these errors compile time? If so, what's the complaint about?
Do you mean "CStringt.h", or possibly "cstring"?
Steve S
|
|
|
|
|
If you are working around with a MFC project generated by VC++, there's no need to include any header file for CString. If you insist, then do:
#include <cstringt.h> // Visual Studio .NET
If you are using string, you have to include <string>. And class string is in namespace std.
Maxwell Chen
|
|
|
|
|
Thank you to all those who replied about my question I really appreciate it. So sorry about the header file... I thought there was still a need for me to add a CString header file when I intend to use its functionalities
Thanks guys
|
|
|
|
|
How to get full path to folder using SHGetPathFromIDList, or maybe in other way, but using only SHBrowseForFolder
|
|
|
|
|
|
how to get _DSpreadSheet's point from _DSpreadSheet's handle?
(class _DSpreadSheet : public COleDispatchDriver)
CButton's point can get from CButton's handle.
CButton *p;
p = (CButton *)CWnd::FromHandle(glhTargetWnd);
help me! 555555
|
|
|
|
|
Try
pYourWnd->GetControlUnknown();
Sonork 100.41263:Anthony_Yio
Life is about experiencing ...
|
|
|
|
|
thank you for your answer,
but my point is HWND__ and your pYourWnd is CWnd.
I can not use it.
How can I do ?
|
|
|
|
|
That is easy.
Use
CWnd *pWnd = CWnd::FromHandle(yourHWND);
Sonork 100.41263:Anthony_Yio
Life is about experiencing ...
|
|
|
|
|
How can I do to read the timecode in avi files before render them with DirectShow filter ?
Can you give me sample codes ?
Thank you for your answer.
Fred
|
|
|
|
|
Hi,
From my application I am launchin another exe by calling thrugh WinExec("EXE path",SW_SHOW).But the problem here is EXE is getting opened every time when I click the toolbar butto.I want to restrict this for single instance.
can anybody help me regarding this?
Bose Dayala
|
|
|
|
|
the exe you are launching do u have its code, if you do you can code in to the exe itself that it will run only one time
every time it start it can do a FindWindow(windowname) if exists exit ( or Win32 Events can be used )
if you don't have access to the exe's code than in the launching application use CreateProcess instead of winexec and use the handle to the process too determine if the exe is running or not
hope it helps
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
|
|
|
|
|
Hi,
thnx for quick help....I don't have its code and even ProcessID...how to get the process ID for any EXE??
thnx and regards
Bose Dayala.
ThomasKennedyBose
|
|
|
|
|
Task Manager is an example of a program that enumerates all running processes. It is implemented using data from the performance registry. The following sample code uses the EnumProcesses function to enumerate the current processes in the system. This method is easier than using the performance registry.
#include <windows.h>
#include <stdio.h>
#include "psapi.h"
void PrintProcessNameAndID( DWORD processID )
{
char szProcessName[MAX_PATH] = "unknown";
// Get a handle to the process.
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
// Get the process name.
if ( hProcess )
{
HMODULE hMod;
DWORD cbNeeded;
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod),
&cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName,
sizeof(szProcessName) );
}
}
// Print the process name and identifier.
printf( "%s (Process ID: %u)\n", szProcessName, processID );
CloseHandle( hProcess );
}
void main( )
{
// Get the list of process identifiers.
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return;
// Calculate how many process identifiers were returned.
cProcesses = cbNeeded / sizeof(DWORD);
// Print the name and process identifier for each process.
for ( i = 0; i < cProcesses; i++ )
PrintProcessNameAndID( aProcesses[i] );
}
The main function obtains a list of processes by using the EnumProcesses function. For each process, main calls the PrintProcessNameAndID function, passing it the process identifier. PrintProcessNameAndID in turn calls the OpenProcess function to obtain the process handle. If OpenProcess fails, the output shows only the process identifier. For example, OpenProcess fails for the Idle and CSRSS processes because their access restrictions prevent user-level code from opening them. Next, PrintProcessNameAndID calls the EnumProcessModules function to obtain the module handles. Finally, PrintProcessNameAndID calls the GetModuleBaseName function to obtain the name of the executable file.
This may help u.
/jitendra
Jitendra Pal Singh Gangwar
E-mail: jitendra_gangwar@hotmail.com
Mobile No: 09831352305
|
|
|
|
|
Task Manager is an example of a program that enumerates all running processes. It is implemented using data from the performance registry. The following sample code uses the EnumProcesses function to enumerate the current processes in the system. This method is easier than using the performance registry.
#include <windows.h>
#include <stdio.h>
#include "psapi.h"
void PrintProcessNameAndID( DWORD processID )
{
char szProcessName[MAX_PATH] = "unknown";
// Get a handle to the process.
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
// Get the process name.
if ( hProcess )
{
HMODULE hMod;
DWORD cbNeeded;
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod),
&cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName,
sizeof(szProcessName) );
}
}
// Print the process name and identifier.
printf( "%s (Process ID: %u)\n", szProcessName, processID );
CloseHandle( hProcess );
}
void main( )
{
// Get the list of process identifiers.
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return;
// Calculate how many process identifiers were returned.
cProcesses = cbNeeded / sizeof(DWORD);
// Print the name and process identifier for each process.
for ( i = 0; i < cProcesses; i++ )
PrintProcessNameAndID( aProcesses[i] );
}
The main function obtains a list of processes by using the EnumProcesses function. For each process, main calls the PrintProcessNameAndID function, passing it the process identifier. PrintProcessNameAndID in turn calls the OpenProcess function to obtain the process handle. If OpenProcess fails, the output shows only the process identifier. For example, OpenProcess fails for the Idle and CSRSS processes because their access restrictions prevent user-level code from opening them. Next, PrintProcessNameAndID calls the EnumProcessModules function to obtain the module handles. Finally, PrintProcessNameAndID calls the GetModuleBaseName function to obtain the name of the executable file.
This may help u.
/jitendra
|
|
|
|
|
I am doing a search for a particular directory (1).
If the directory is found then I am going to the last sub directory of 1.
Then I am listing all the files in these directory.
Pls kindly help me in this respect.
CFileFind l_fileFind;
//Find the root directory
bool l_bool = l_fileFind.FindFile(_T("D:\\Epson\\CPS"));
while(l_bool)
{
l_bool = l_fileFind.FindNextFile();
if (l_fileFind.IsDirectory())
{
//List all the files
}
}
|
|
|
|
|
Just do the whole thing again, a filefind in the new directory with \*.* at the end.
|
|
|
|
|
Anyone knows how to detect whether or not the current window is console window.
Thanx in advance...
|
|
|
|
|
HWND hwnd = ::GetForegroundWindow();
ASSERT(hwnd != NULL);
TCHAR szClass[256] = _T("");
::GetClassName(hwnd, szClass, 255);
if (_tcsicmp(szClass, _T("ConsoleWindowClass")) == 0)
{
}
else
{
}
I did not compile above code, but you should have got the main idea.
|
|
|
|