|
How can I get the date stamp of my running executable?
Ray
|
|
|
|
|
GetModuleFilename()
CFile::GetStatus()
- Examine the
m_ctime member /ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
I use the date stamp of my executable as the version number, which I append to the title of my main window. Here's how I get the info:
static char appVersion[30];<br />
<br />
void AteUtility_InitAppVersion (HINSTANCE hInstance)<br />
{<br />
char szFileName[MAX_PATH];<br />
char szFileTitle[MAX_PATH];<br />
WIN32_FIND_DATA fileData;<br />
FILETIME localModTime;<br />
SYSTEMTIME systemTime;<br />
<br />
GetModuleFileName (hInstance, szFileName, MAX_PATH);<br />
<br />
GetFileTitle (szFileName, szFileTitle, MAX_PATH);<br />
<br />
FindFirstFile (szFileName, &fileData);<br />
<br />
FileTimeToLocalFileTime (&fileData.ftLastWriteTime, &localModTime);<br />
FileTimeToSystemTime (&localModTime, &systemTime);<br />
<br />
sprintf(appVersion, "Version: %4.4d.%2.2d.%2.2d.%2.2d.%2.2d", systemTime.wYear, systemTime.wMonth, systemTime.wDay, systemTime.wHour, systemTime.wMinute);<br />
}
Hope this helps!
'til next we type...
HAVE FUN!! -- Jesse
|
|
|
|
|
I got this error of cv.lib not being able to open
What should i open the lib with?
Thanks
|
|
|
|
|
I can only guess, but it sounds like either the "cv.lib" doesn't exist,
means you don't have the library, or the path to the lib is not correct.
Perhaps you copied the sources from another machine and now Visual Studio
doesn't find the lib anymore.
Search your disk for the lib and enter the path to it... and everything
should work fine.
Regards, mYkel
|
|
|
|
|
Hello,
I have a MDI application with only one type of document template.. I would like to open a new/blank document but I dont want the new document to be shown in front of the currently open doc. Basically open it behind any previously open docs... Anyone know any tricks around this?
Right now I am using OpenDocumentFile(NULL), this brings the new doc to the front (as designed).
Rob
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
MDI will always put the active child window on top. If you don't want it to be active (have focus) then after you open it make you real document the active window again.
That said having a "new" window behind the current window sounds very strange for the poor user.
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
Thanks, right after the post I setup a function to do just that.
The MDI app is a tabbed chat client, when a new person msg's the user I didn't want the new tab/doc to pop-up in front especially if the user was in the middle of typing to someone else....
Anyway thanks for your help,
Rob
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
char lpBuffer[256];
GetPrivateProfileString()
"FYP", // LPCTSTR lpAppName
"MyKey1", // LPCTSTR lpKeyName
"0", // LPCTSTR lpDefault - in case file does not exist this is default
lpBuffer, // LPCTSTR lpReturnedString
256, // DWORD nSize
"File.ini" // LPCTSTR lpFileName
);
WritePrivateProfileString()
"FYP", // LPCTSTR lpAppName
"MyKey1", // LPCTSTR lpKeyName
"0", // LPCTSTR lpString - whatever you want to save
"File.ini" // LPCTSTR lpFileName
);
Can someone explain to me how to go about using this privateprofilestring
|
|
|
|
|
You have to specify the full path to the file.
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
char lpBuffer[256];
GetPrivateProfileString()
"c:\Desktop\FYP", // LPCTSTR lpAppName
"MyKey1", // LPCTSTR lpKeyName
"0", // LPCTSTR lpDefault - in case file does not exist this is default
lpBuffer, // LPCTSTR lpReturnedString
256, // DWORD nSize
"File.ini" // LPCTSTR lpFileName
);
WritePrivateProfileString()
"FYP", // LPCTSTR lpAppName
"MyKey1", // LPCTSTR lpKeyName
"0", // LPCTSTR lpString - whatever you want to save
"File.ini" // LPCTSTR lpFileName
);
You mean like this?
|
|
|
|
|
No, the last parameter must contain a full path to your file.
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
ic..u mean FYP.doc?
Then do i need to declare variable in the GetPrivateProfileString()function?
Then what do i key in for "MyKey1"?
GetPrivateProfileString()
"c:\Desktop\FYP", // LPCTSTR lpAppName
"MyKey1", // LPCTSTR lpKeyName
"0", // LPCTSTR lpDefault - in case file does not exist this is default
lpBuffer, // LPCTSTR lpReturnedString
256, // DWORD nSize
"File.ini" // LPCTSTR lpFileName
);
Thanks alot
|
|
|
|
|
I think he means File.ini should be c:\Desktop\FYP\File.ini or what ever your path is.
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
char* lpFullPath = "C:\\Program Files\\MyProgram\\File.ini";
GetPrivateProfileString("MYAPPNAME", "MyKey", "error", lpBuffer, 256, lpFullPath);
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
#include "stdafx.h"
char lpBuffer[256]
{
GetPrivateProfileString("MYAPPNAME", "MyKey1", "error", lpBuffer, 256, C:/Desktop/FYP.ini)
"MYAPPNAME", // LPCTSTR lpAppName
"MyKey", // LPCTSTR lpKeyName
"0", // LPCTSTR lpDefault - in case file does not exist this is default
lpBuffer, // LPCTSTR lpReturnedString
256, // DWORD nSize
"C:/Desktop/FYP.ini" // LPCTSTR lpFileName
WritePrivateProfileString(("MYAPPNAME", "MyKey1", "error", lpBuffer, 256, C:/Desktop/FYP.ini)
"MYAPPNAME", // LPCTSTR lpAppName
"MyKey1", // LPCTSTR lpKeyName
"0", // LPCTSTR lpString - whatever you want to save
"C:/Desktop/FYP.ini"// LPCTSTR lpFileName
}
return 0;
Is this programme correct now?
Do I leave MYAPPNAME as it is?
|
|
|
|
|
void MyFunction()
{
char lpBuffer[256];
GetPrivateProfileString("MYAPPNAME", "MyKey1", "error", lpBuffer, 256, C:/Desktop/FYP.ini);
WritePrivateProfileString(("MYAPPNAME", "MyKey1", "error", lpBuffer, 256, C:/Desktop/FYP.ini);
}
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
Hi,
I am getting an linker error like this. Please let me know the include files or the libraries needed and also how do I navigate through the visual studio to include them.
.......
Generating Code...
Compiling resources...
Linking...
nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
nafxcw.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcw.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcw.lib(viewedit.obj) : error LNK2001: unresolved external symbol __mbctype
Thanks,
Prashant
|
|
|
|
|
Hi guys.
Maybe this is a silly question, but I'm trying to move a control when I press a button and is not working as desired.
I have a Single Document App with a CFormView where I call a Modal Dialog. In this Dialog I have an static control IDC_MYSTATIC
What I'm trying to do is to move 20 pixel on the right this STATIC when I press a button.
I'm a little confused with GetWindowRect(...) GetClientRect(...) and the STATIC is not redraw where I supose it had to be.
Could you please tell me the correct way to move my STATIC in my window?
Best Regards
Doc
|
|
|
|
|
Inside the dialog, you need to do a GetWindowRect() for the static control, convert the coordinates to client coordinates, add 20 to left and right then move the control:
CRect rect;<br />
m_staticControl.GetWindowRect(rect);<br />
ScreenToClient(rect);<br />
rect.left += 20;<br />
rect.right += 20;<br />
m_staticControl.MoveWindow(rect);
(You could replace the last line with the following:
m_staticControl.SetWindowPos(NULL, rect.left + 20, 0, 0, 0, SWP_NOCOPYBITS | SWP_NOREPOSITION | SWP_NOSENDCHANGING | SWP_NOSIZE |<br />
SWP_NOZORDER);
)
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
anyone know whats the win32 command to write multiple lines of text to an edit box. I've created a project using the wizard and just dragged the edit box to the dialog.
Note: SetWindowText doesn't appear to work for a multiline edit box (i.e. to write many lines of text to this edit box)
Kind Regards
Kevin
|
|
|
|
|
In the properties of the edit box select multiline.. Once you do that you can use SetWindowText and seperate lines using \r\n so "Line One\r\nLine Two"
Rob
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
SetWindowText("A\r\nB\r\nC\r\n");
i.e.
A
B
C
This idea is fine if you want to write lines to the edit box just once.
However I've a scenario where I need to write one line of text in one function another in another function and so on. The idea suggested won't work.
Any other suggestions much appreciated
Kind Regards
Caoimh
|
|
|
|
|
You could use GetWindowText in each of your functions to get the text that is already in the edit box then append to it.. that way each function doesn't clear the exit box's test.
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
Hi,
I'd like to trigger an event within my application at a specific time. Is there a better way other than installing a timer with SetTimer() and check the current time every 1 second?
Thanks in advance.
Have no fear of perfection - You will never reach it
|
|
|
|