|
Hi All
How can i check files/folder is exits or not in paticular drive like c:\\?Plz help me
|
|
|
|
|
Hello Davitor,
Misunderstood the question.
You can use this api - PathIsDirectoryEmpty()[^].
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
modified on Monday, April 20, 2009 3:02 AM
|
|
|
|
|
|
You may use PathFileExists[^]
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|
|
You can use of FindFirstFile .
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
#include <windows.h>
int main ()
{
MessageBox(NULL, "Please do not press okay, just wait.", "Beginning", MB_EXCLAMATION);
return 0;
}
I would like to make this message box close on its own in 5 seconds.
|
|
|
|
|
|
Why do you need such a message box? Are you needing to show some kind of a progress?
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
|
Hellow!
Now, I have a problem when input chinese(宝) into _RecordsetPtr for filtering.
Building environment is following
- VC++ 6.0
- unicode debug
- Inputed Chinese charactor by user in IE 6.0 installed the ActiveX.
- So user will input the character 宝 in ActiveX, and filtering button click.
(example)
_RecordsetPtr pRS;
pRS.CreateInstance(__uuidof(Recordset)); //create
CreateEmptyResultRecordset(pRS); //recordset header
pRS->Open(vtMissing, vtMissing, adOpenStatic,adLockBatchOptimistic,-1);
~~
~~
pRs->Fields->GetItem((_bstr_t)tpfd->m_StringID)->PutValue((_bstr_t)tpData->GetAt(j));
"tpData" is CStringArry type, and tpData->GetAt(j) will return CString type.
When using "PutValue((_bstr_t)tpData->GetAt(j))", occured COM errors.
When My IME setting was changed Korean to Chinese, the problem is not happend.
How can I do? ~~~~
|
|
|
|
|
I'm trying to get my program to print out an asterisk when then user is typing in his/her password.
I've gotten this part to work, however. for debugging issues I'm also trying to make the program print the password at the end. It's currently only outputting the last letter typed in as if its the password.
So, how can I make the program output the entire actual password. Here is my code:
#include <conio.h>
#include <iostream.>
#include <windows.h>
using namespace std;
char password1;
char password2;
char password3;
int x=1;
int main()
{
do{
cout << "Enter a test password: " ;
do{
password1=getch();
if((password1>=65) && (password1<=122)){cout << "*";
password2=password1;
password3=password2+password1;}
else{cout << "";}
}while(password1!=13);
cout << "\nYour password is " << password3;
Sleep(2000);
system("cls");
}while(x=1);
return 0;
}
password2 and 3 were adding in when i was trying to get it to work.
|
|
|
|
|
Did you check your program?
1. >> password1=getch();
- you are getting the KB i/p on password1.
2. >> password2=password1;
- Assigning the same value to password2
3. >> password3=password2+password1;
- concatenating the the same values to password3. Also you are concatinating 'char'( 1 byte) ie. the ascii value are added and will not be an expected value.
Use password2 as a char array and use string functions to concatenate the password1 to password2.
aks
|
|
|
|
|
reply, wouldnt allow me to do that, however, I fixed that issue around 30 minutes ago. I now have:
#include <conio.h>
#include <iostream.>
#include <windows.h>
using namespace std;
char password1[25];
int x=1;
int i=0;
int main()
{
do{
cout << "Enter a test password: " ;
for(i=0;i<25;i++){
password1[i]=getch();
if(((password1[i]>=65)&&(password1[i]<=90)) || ((password1[i]>=97)&&(password1[i]<=122))
|| ((password1[i]>=48)&&(password1[i]<=57)) || ((password1[i]>=35)&&(password1[i]<=38))
|| ((password1[i]>=40)&&(password1[i]<=42)) || ((password1[i]==33))||((password1[i]==64))
|| ((password1[i]==94)) || ((password1[i]==32))){cout << "*";
i+1;}
if(password1[i]==13){goto end;}
else{cout << "";}
}
end:
for (i; i < strlen(password1); i++){
password1[i] = '\0';}
cout << "\nYour password is " << password1[0] << password1[1] << password1[2] << password1[3] << password1[4] << password1[5] << password1[6] << password1[7] << password1[8] << password1[9] << password1[10] << password1[11] << password1[12] << password1[13] << password1[14] << password1[15] << password1[16] << password1[17] << password1[18] << password1[19] << password1[20] << password1[21] << password1[22] << password1[23] << password1[24] << password1[25];
Sleep(2000);
if(password1[i]=='password'){goto end1;}
system("cls");
}while(x=1);
end1:
cout << "\nIT WORKS!";
getch();
return 0;
}
This works completely other than it doing the password check which im still looking into. feel free to help
|
|
|
|
|
hi
I have an activex control written in c++..i can use this activex in html. there is no problem.
I have another x.dll file written in delphi. I can use this dll in ocx by using LoadLibrary function.
My problem is if the user doesnt have the x.dll in his computer, ie locks down.
I have packed activex and dll in a cab file.
My question is how can i load this dll in my activex. I am using LoadLibrary(x.dll) and it searches for dll in windows/system32 folder.
Or how can i load this dll to windows/system32 folder.
modified on Sunday, April 19, 2009 1:14 PM
|
|
|
|
|
maxMESA wrote: My question is how can i load this dll in my activex. I am using LoadLibrary(x.dll) and it searches for dll in windows/system32 folder.
Construct the full path to the DLL and pass that to LoadLibrary.
You can get the ActiveX's path using GetModuleFileName[^], either by storing the ActiveX DLL's HINSTANCE in it's DllMain or (and I think this is better, as there's no global varible involved) by using GetModuleHandle[^] or GetModuleHandleEx[^] to get the ActiveX DLL's HMODULE. In fact, if you put the function below in your ActiveX DLL (it has to be in that DLL), you'll get the ActiveX DLL's path - the function asks for the module containing itself.
std::string GetThisModulesFileName()
{
HMODULE hMod;
char path[MAX_PATH];
GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, reinterpret_cast<lpcstr>(&GetThisModulesFileName), &hMod);
GetModuleFileNameA(hMod, path, MAX_PATH);
return std::string(path);
}</lpcstr>
You might want to add some error checking for production code
Once you've got the ActiveX DLL's path, it's simple to extract the directory with PathRemoveFileSpec[^] and then add on the DLL's name with PathCombine[^].
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
|
We know that when point variable as parameter of function,operations done in the function to the parameter actually willl effect the variable that is passed into the function.That is called pass by reference.
Based on above viewpoint,I have an confusion. For example,
void GetMemory(char* p)
{
p = new char[100];
}
int main()
{
char* str = NULL;
GetMemory(str);
}
After GetMemory(str) is complete, str is still NULL and no point variable is related to memory allocated.
About the result, one explanation is p in function GetMemory is only a copy of variable str. This explanation may be right but it seems that it contradicts pass by reference. Now that passing by reference, where is the copy come from. And operations done to variable p is equal to operations to str,why str is NULL finally.
Appreciate your kind very much and hope anyone give me a clear explanation. Thanks in advance.
|
|
|
|
|
sharion wrote: About the result, one explanation is p in function GetMemory is only a copy of variable str. This explanation may be right but it seems that it contradicts pass by reference. Now that passing by reference, where is the copy come from. And operations done to variable p is equal to operations to str,why str is NULL finally.
There is no contradiction. When you pass a pointer, the thing that is pointed at is passed by reference. So, in your case, the character(s) pointed at by str are passed by reference. str, however, is passed by value.
To pass str by reference, you need to add another level of indirection, either by passing a pointer to str or passing a reference to str, like this:
Pass a pointer to str:
void GetMemory(char** p)
{
*p = new char[100];
}
int main()
{
char* str = NULL;
GetMemory(&str);
}
Pass a reference to str:
void GetMemory(char*& p)
{
p = new char[100];
}
int main()
{
char* str = NULL;
GetMemory(str);
}
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks for your respond.
Stuart Dootson wrote: When you pass a pointer, the thing that is pointed at is passed by reference.
Still feel some confusion.
void GetMemory(char* p)
{
p = new char[100];
*(p + 10) = 'a';
}
int main()
{
char* str = NULL;
GetMemory(str);
}
We believe str is still NULL, where I have mistaken?
|
|
|
|
|
this is what occurs in sequence:
char* str = NULL;
GetMemory(str);
void GetMemory(char* p)
p = new char[100];
*(p + 10) = 'a';
return;
...
and this is how the callee would be able to modify the caller's pointer
void GetMemory(char** p)
{
p = new char[100];
}
int main()
{
char* str = NULL;
GetMemory(&str);
|
|
|
|
|
sharion wrote: *(p + 10) = 'a'; /* following comment is true or not?*/
/* operate to the memory block
that you called passed by reference
*/
Not true.
You passed NULL to GetMemory. That NULL was copied into p (that's what pass by value does). You then changed p's value to the result of the memory allocation and altered that memory block.
So, in effect, you passed a reference to the memory starting at NULL, then threw away that reference in GetMemory by doing
p = new char[100];
sharion wrote: We believe str is still NULL, where I have mistaken?
No mistake, str will remain NULL with your code. Did you look at the code samples I provided you?
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks for guy's repond.
Of course your solution to keeping str changed is complete right. I feel awkward about your explanation. Based on experience previous, I take it for granted that whatever you have done to p have the same effect to str. That is passing by reference what I previously thought. Now your explanation is opposite to my thought and I find it hard to drive me from the viewpoint out-of-date.That is my puzzle.
Thanks a lot.
|
|
|
|
|
sharion wrote: Based on experience previous, I take it for granted that whatever you have done to p have the same effect to str. That is passing by reference what I previously thought
What you are actually doing in your code is passing the pointer str by value. At the same time, you are passing by reference is what str points to.
C always passes parameters by value. So, when you want to pass a parameter by reference, you need to get a pointer to the value and pass the pointer by value to the function. So, this function takes x by value and returns a value calculated from x.
int Double(int x)
{
return x + x;
}
while this function does the same, but passing x by pointer. To show that the actual value you pass to the function is not the one you're passing by pointer, I've changed the parameter to pX , meaning 'pointer to X'.
int Double(int *pX)
{
return (*pX) + (*pX);
}
Now, let's move on to some string functions. Let's calculate the length of a C string:
int StringLength(char* s)
{
int length = 0;
while (*(s + length) != 0)
++length;
}
Now, what is s ? It's a string, right? But in C, a string is just a pointer to the first character of the string! So, we're passing a pointer to the sequence of characters that make up the string. And we're passing that pointer by value. What we're passing by pointer is the characters that make up the string.
This page[^] and the ones it links to (especially the one about modifying function arguments[^] might help explain it better than I can - I've never been a good teacher
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
I fully agree, except maybe with "I've never been a good teacher".
"C always passes parameters by value" basically says it all.
Of course the problem is other languages (try and) hide the notion of pointers with keywords such as ByRef (VB) or ref (C#).
|
|
|
|
|
Try something like Ada[^] To paraphrase - we'll pass some things by value, some by reference...and we're not telling which
It does work well, however, as Ada also has the concept of in , out and in out parameters, so you use that rather than having to interpret how to use 'by value' or 'by reference' parameters to get what you want.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|