|
|
File Management[^]:
GetFileSize, GetFileTime, GetFileAttributesEx, GetFullPathName, GetFileType, ...
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
I take it there's a header file that is needed for the above functions?
Danny
|
|
|
|
|
no, you don't need to include any other header. They are all already in the standard platform win32 sdk.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
marcdev wrote:
GetFileSize, GetFileTime, GetFileAttributesEx, GetFullPathName, GetFileType, ...
When using, for example, GetFileTime, MSDN says I need to get a handle to the file by opening it with GENERIC_READ only. I tried both fstream.open() and fopen() ways of opening the file, both with read only selected. It doesn't seem to work (The call to GetFileTime always fails). How am I to get GetFileTime() to work?
Danny
|
|
|
|
|
You need to open the file with the CreateFile Win32 function and it will return a handle to use with the other functions.
Don't intermix the different stream, FILE*, etc. families of file function calls together.
|
|
|
|
|
<br />
FILETIME ftCreation, ftLastAccess, ftLastWrite;<br />
HANDLE hFile = CreateFile(filename,GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);<br />
if (hFile != INVALID_HANDLE_VALUE) <br />
{<br />
BOOL bret = GetFileTime(hFile,&ftCreation,&ftLastAccess,&ftLastWrite);<br />
}<br />
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
I'm a newbie to C, C++, and the Visual C++ IDE. I'm trying to call the GetLastInputInfo() function that is in user32.lib, but I can't seem to get off the ground. I tried adding the user32.lib to the project but that hasn't helped. Any help getting the code to compile (and explanation) would be appreciated. Thanks! I'm using Visual Studio.net 2003.
The MSDN documentation says this about GetLastInputInfo:
--------------------------------------------------------
Header Declared in Winuser.h, include Windows.h
Import library User32.lib
Minimum operating systems Windows 2000
The code I have now in my .cpp file is:
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include "Winuser.h"
typedef struct LASTINPUTINFO {
UINT cbSize;
DWORD dwTime;
} LASTINPUTINFO, *PLASTINPUTINFO;
int _tmain(int argc, _TCHAR* argv[])
{
printf("hello");
LASTINPUTINFO myinfo;
BOOL result = GetLastInputInfo(&myinfo);
return 0;
}
The error I'm getting now is:
'GetLastInputInfo': identifier not found, even with argument-dependent lookup
|
|
|
|
|
dmtwpi21 wrote:
#include "Winuser.h"
This is unnecessary if you are also including windows.h .
dmtwpi21 wrote:
typedef struct LASTINPUTINFO {
Why the redefinition?
dmtwpi21 wrote:
The error I'm getting now is:
'GetLastInputInfo': identifier not found, even with argument-dependent lookup
_WIN32_WINNT must have a value of at least 0x0500.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Thanks. I removed the line
#include "Winuser.h"
as you suggested and added the line
#define _WIN32_WINNT 0x0500
as the first line (before the #includes), but I'm still getting the same error message as before:
'GetLastInputInfo': identifier not found, even with argument-dependent lookup
Any other ideas? Thanks a lot!
|
|
|
|
|
What is the error number?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
The error is LNK2019:
error LNK2019: unresolved external symbol "int __cdecl GetLastInputInfo(struct LASTINPUTINFO *)" (?GetLastInputInfo@@YAHPAULASTINPUTINFO@@@Z) referenced in function _main
|
|
|
|
|
So where did
'GetLastInputInfo': identifier not found, even with argument-dependent lookup
come from?
dmtwpi21 wrote:
error LNK2019:
This apparently is a VS.NET issue. Correct? I'm leaning towards name-mangling, but am not for sure.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
A friend finally figured out the problem. Apparently, putting the preprocessor commands into StdAfx.h and recompiling eliminates the problems, allowing my .cpp file to look like this:
<br />
#include "stdafx.h"<br />
<br />
int main(int argc, char* argv[])<br />
{<br />
printf("Program Started...\n\n");<br />
LASTINPUTINFO myInfo;<br />
myInfo.cbSize = sizeof(myInfo);<br />
BOOL myResult = GetLastInputInfo(&myInfo); <br />
printf("...Program Completed\n\n");<br />
return 0;<br />
}<br />
So I didn't need the overloading of the LASTINPUTINFO struct and the prototype of the GetLastInputInfo() function.
|
|
|
|
|
dmtwpi21 wrote:
So I didn't need the overloading of the LASTINPUTINFO struct...
Correct.
dmtwpi21 wrote:
So I didn't need...the prototype of the GetLastInputInfo() function.
How so? If you have included winuser.h either directly or indirectly, there is a prototype.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
DavidCrow wrote:
dmtwpi21 wrote:
So I didn't need...the prototype of the GetLastInputInfo() function.
How so? If you have included winuser.h either directly or indirectly, there is a prototype.
Oops... The example I posted originally didn't have a function prototype in it (other than from the winuser.h) but one thing I tried later on was adding it, and that's the code that my friend looked at. Looking back on this, I suppose when the compiler couldn't figure out what LASTINPUTINFO was without me overloading it, that should have been a clue that the .h files I included weren't being included properly, but on the rare occasion I write C code, I usually use gcc which isn't fussy about which file you place the #includes in.
|
|
|
|
|
How to create a random number not only using the MFC function but using the current time of generation and the mouse position?
It should be impossible to crack
/\|-||\/|/\|)
|
|
|
|
|
hey mr Halawlaws,
i wonder if you are not using CodeProject because you are too tired to search the MSDN[^]...
#include <stdlib.h>
srand((unsigned)time(NULL));
int i = rand();
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
toxcct wrote:
i wonder if you are not using CodeProject because you are too tired to search the MSDN[^]...
no not true
and mouse position?
/\|-||\/|/\|)
|
|
|
|
|
convert the random number to string and split into two..make them again as int. multiply one part of the number with Cpoint's x and others's with another (y + another Random number) ..he he
vivek
|
|
|
|
|
how to get the mouse position?
/\|-||\/|/\|)
|
|
|
|
|
what about the mouse position ? if you use it, it will not be random anymore ...
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
yes because if u open the dialog and move it u will have different position of mouse also on each different computer it will be different
/\|-||\/|/\|)
|
|
|
|
|
so ?
what exactly you want to do ? ( besides the random numbers ) .
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
The software allow users to create random serial number for there companies based on the serial number of the product. This random number is sold later if a certain client need to enable something in his device.
/\|-||\/|/\|)
|
|
|
|