|
int timerPinout = 0;
void CChrisRelayDlg::CheckTimers()
{
if (m_strOn1 == m_sTime)
{
m_Pin1 = TRUE;
timerPinout |= 0x1;
}
if (m_strOn2 == m_sTime)
{
m_Pin2 = TRUE;
timerPinout |= 0x2;
}
if (m_strOn3 == m_sTime)
{
m_Pin3 = TRUE;
timerPinout |= 0x4;
}
if (m_strOn4 == m_sTime)
{
m_Pin4 = TRUE;
timerPinout |= 0x8;
}
if (m_strOn5 == m_sTime)
{
m_Pin5 = TRUE;
timerPinout |= 0x10;
}
if (m_strOn6 == m_sTime)
{
m_Pin6 = TRUE;
timerPinout |= 0x20;
}
if (m_strOn7 == m_sTime)
{
m_Pin7 = TRUE;
timerPinout |= 0x40;
}
if (m_strOn8 == m_sTime)
{
m_Pin8 = TRUE;
timerPinout |= 0x80;
}
if (m_strOff1 == m_sTime)
{
m_Pin1 = FALSE;
timerPinout &= 0xFE;
}
if (m_strOff2 == m_sTime)
{
m_Pin2 = FALSE;
timerPinout &= 0xFD;
}
if (m_strOff3 == m_sTime)
{
m_Pin3 = FALSE;
timerPinout &= 0xFB;
}
if (m_strOff4 == m_sTime)
{
m_Pin4 = FALSE;
timerPinout &= 0xF7;
}
if (m_strOff5 == m_sTime)
{
m_Pin5 = FALSE;
timerPinout &= 0xEF;
}
if (m_strOff6 == m_sTime)
{
m_Pin6 = FALSE;
timerPinout &= 0xDF;
}
if (m_strOff7 == m_sTime)
{
m_Pin7 = FALSE;
timerPinout &= 0xBF;
}
if (m_strOff8 == m_sTime)
{
m_Pin8 = FALSE;
timerPinout &= 0x7F;
}
if (m_strOff6 == m_sTime)
{
m_Pin6 = FALSE;
timerPinout &= 0xDF;
}
Out32(0x378,timerPinout);
m_iCout--;
UpdateData(false);
}
|
|
|
|
|
Gentlemen,
I am reworking on a japanese database project which was previously done.
Instead of using ms-access database, they used their own defined database with *.cho as extensiion not *.mdb, and this database is using jet engine and MFC wrappers.
How could one create database with custom extension and communicate with jet engine using Dao MFC wrappers?
Padam Raj Gurung
|
|
|
|
|
Hi!
i know virtual address of code section (of an exe) is 401000 (for example).
when this exe is running, how do i get real address with virtual exe?
i want to determinate which exe call my function (my function is in other exe).
in my function, i pop of stack, this value is virtual address of exe that call my function. but real address?
Zo.Naderi-Iran
|
|
|
|
|
Well, you can use LoadLibrary(...) to load an executable into your address space. If you know the relative offset of the code you are trying to execute, you should be able to calculate the offset after loading it into your address space (and knowing where it was loaded at).
Getting the offset in the other running executable may be possible via injection or using CreateRemoteThread(...) . How to inject into running processes and/or use CreateRemoteThread(...) is a whole series of articles in itself.
If the function is exported via an export table (yes, EXEs can export functions just like DLLs), you can just use GetProcAddress(...) after calling LoadLibrary(...) , just like a normal DLL.
Note that even though you will be running code in the other executable, you will not be able to share data easily between the two because they are running in completely separate address spaces.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Hi,
I execute the lines of code below
<br />
#include "ATLComTime.h"<br />
<br />
COleDateTime tmVal = COleDateTime::GetCurrentTime();<br />
CString tmStr = tmVal.Format(LOCALE_NOUSEROVERRIDE, LOCALE_NEUTRAL);<br />
On executing tmVal will be say 39391.729583333.
tmStr give me the current time in the format tmStr = "11/5/2007 5:30:36 PM" (Current time).
Now assume, I have only tmStr value of "11/5/2007 5:30:36 PM", can I get the tmVal of 39391.729583333 from tmStr.
Are there any api's which will help me with this conversion?
|
|
|
|
|
I do not know of a standard Parse(...) function that will do it all for you. You can, however, manually parse out the parts of the datetime string and then feed the values one of the versions of the COleDateTime construtor.
For example, the datetime string is formatted as MM/DD/YYYY HH:MM:SS XX , which can be parsed easily using functions like _stscanf(...) - look it up for info on how to create the format string to parse out those values. Something like:
%02d/%02d/%04d%c02d:%02d:%02d%c%c%c Might be able to parse it correctly. The formatted character specifiers will read the space characters and the "M" part of AM/PM and can be discarded.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Hi,
Got the solution
<br />
COleDateTime tmVal;<br />
tmVal.ParseDateTime(tmStr);<br />
will get back my tmVal.
I have another issue.
Are there any API's which will tell me the time format set by the user in
Control Panel -> Region and Language Options -> Custom -> Select Time Tab, in this dialog, please refer to the "Time Format" Combo.
Basically the combo i am refering to above lets me set the format in which time/ date has to be shown to me i.e, by appropriately setting, I can view my current date as either MM/DD/YYYY or YYYY/MM/DD etc.....
Are there any API's which will tell me the current display format set by me?.
I need this info, because I store the string tmStr which I get from the code below.
<br />
COleDateTime tmVal = COleDateTime::GetCurrentTime();<br />
CString tmStr = tmVal.Format(LOCALE_NOUSEROVERRIDE, LOCALE_NEUTRAL);<br />
Depending on the time format selected by the user, I have to accordingly manipulate the string and display it to the user.
Thanks.
|
|
|
|
|
Hi,
I want to measure elapsed time of a function in microsecs how to do that.
I tried with clock()(output is in seconds/ millisec),GetTickCount() (in millisec) the output is in secs or millisecs,i need in microsecs.Is there any function in VC++?
Thanks
|
|
|
|
|
shir_k wrote: I tried with clock()(output is in seconds/ millisec),GetTickCount() (in millisec) the output is in secs or millisecs,i need in microsecs.Is there any function in VC++?
try QueryPerformanceCounter (Multimedia Timers)
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Not without calling QueryPerformanceFrequency(...) first to make sure that [1] the HR timer is available and [2] that it supports microsecond-level resolution...
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
James R. Twine wrote: first to make sure that [1] the HR timer is available and [2] that it supports microsecond-level resolution...
right as usual
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
You may also be able to get suitable timing information using the RDTSC instruction. Google for it for more details. If the function will not be running across multiple physical or logical CPUs (its affinity is locked to one CPU, or it is running in a single-CPU system), and will not be running across a sleep/hybernation operation, it should be accurate enough.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Hello every body,
I am encountering a problem. I have a piece of code written by some other person. The intention is to display the Protected operating system files in my application, even if the option is checked i-e Organize->Folder and search options-> view and "Hide Protected operating system files". [At the moment I have Vista o/s]
if (pParentFolder->EnumObjects(NULL, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS |
SHCONTF_INCLUDEHIDDEN, &pEnumIDList) == NOERROR)
Above is the already coded line and I have searched there is no flag for o/s files in the structure. I will be thankful if anybody could help me. Thanks in advance.
Best Regards,
Yasir Nisar
|
|
|
|
|
Hello
My application works only with administrative login because it has to access keys under HKLM in the PC and also works on process's to get their information like the process name and its other details.
But though I have an administrative login in one of the PC's the RegOpenKeyEx() API with KEY_READ flag fails to read a particular key under HKLM (a key which is by default present on a PC installed with windows XP)
Also, when I try to open a process using OpenProcess( PROCESS_QUERY_INFORMATION |PROCESS_VM_READ,FALSE, ProcessID), this API fails to open the process inspite of having SE_DEBUG_NAME privilege.
What could be the reason for this? Is it possible that though a user has Admin privileges, access to the registry can be denied?
Thanx.
|
|
|
|
|
What are the error codes?
Do the errors go away if you run the app as an administrator?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi all....
How can I verify the memmory left on a hard disk?
|
|
|
|
|
Use GetDiskFreeSpace, GetDiskFreeSpaceEx .
Regards,
Paresh.
|
|
|
|
|
Arish rivlin wrote: How can I verify the memmory left on a hard disk?
GetDiskFreeSpaceEx[^]
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
This[^] blog entry is interesting when you're into that theme.!
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
I'm using CreateRemoteThread to do some code injections:
taget.exe; load.exe(call CreateRemoteThread); code.dll
I want to use load.exe to call CreateRemoteThread, the thread function is RemoteThreadProc, then in RemoteThreadProc, load code.dll.
But now I have a problem of debugging. How can I see the code runing step by step in RemoteThreadProc()? I can't set a break point there! and then, now can I run the code step by step in code.dll?
|
|
|
|
|
Hi,
I've got a concern about an application which will be installed on different OS version. Target is Windows XP SP2, but may be English, French, Swedisch, German, ...
In this case, "Common files" folder has a different name in those languages...
When I import a DLL from this common files folder, in my English XP, all is fine. But as soon as I run the installer project, this DLL is simply not found and my project fails.
This DLL is part of the installer project (MSI), so I cannot just copy it into my bin directory.
I know I could copy the DLL in my project, but I don't like this idea. I really would like to find a way to link this DLL independantly of the OS language
This is the way I (currently) import the DLL:
#import "C:\Program Files\common files\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")
Any idea?
Thank's
Fred
|
|
|
|
|
Im now reading info about the NSIS (Nullsoft installator) tool http://www.codeproject.com/useritems/NSIS.asp[^]. I recommend you to take a look there, maybe you find something interesting that can help you. They are speaking about languages as well.
And...
BTW, if you want german or other languages... won't you need to include with $ROOT or something like that?
For example in my German windows is:
C:\<big>Programme</big>\Common Files\System\...
So it would not work in my computer like you worte it
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
Thank's Nelek,
Actually I didn't find something relevant about my issue. I know well NSIS, as I used to work with it in my former job. This is REALLY a wonderful tool. Unfortunately, my current company uses the installer provided with Visual Studio 2005. Maybe we'll change once
Anyway, by looking furthermore on the net, we have found another solution. Instead of importing the DLL itself, I import the GUID of this DLL. For this to work, of course, the DLL must be registered.
The GUID was found using the OLE/COM object viewer tool from Visual Studio tools.
So, the import look like:
#import "libid:00000205-0000-0010-8000-00AA006D2EA4" no_namespace rename("EOF", "EndOfFile")
instead of
#import "C:\Program Files\common files\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")
Regards
Fred
|
|
|
|
|
BTW, I am starting now with the NSIS to do an installator to my application, as you say that you know it well.
Do you know any site where a step by step tutorial or example is?
I have taken a look into the help file (very complet and good explain) but just definitions and how to, but none example for newbies. I would be thankfull if you can recommend me something.
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|