|
This happens because both your application and the device are writing to the port at the same time.
The Inpout32 library, when you call Out32() , will set the port's pins to represent the value you specify. This means that the pins will stay powered even after the call is completed.
To initiate succesfull communication with your device through the same port, first use Out32(888, 0) to clear any previous outputs. Then write Out32(888, 18) . Now make your device read the value in some way (press a button, for example). When done, write Out32(888, 0) again. Put your device to send data, and use Inp32 to read the value.
The problem itself is simple: both you and the device are issuing voltage to the port's pins. This means that if you write 00000001 and your device answers to this by putting 10000000, the port will end up with 10000001, unless you clear your own output first. So, the trick is to call Out32(888, 0) before reading the input.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
I also set the Control pin-5 to TRUE(1)
as for Bi Directional
but .....no
Regards.
|
|
|
|
|
|
I have used one function called "LogonUser" to log into given server with given user name. This function returns the handle which you can use to impersonate the current user. The function to do that is
BOOL ImpersonateLoggedOnUser(HANDLE hToken);
Now after doing this I want to use function "FindFirstFile()" and "FindNextFile" to get the list directory/files in given path.
Here I want to list only those directory/files which a user has rights to access ? so how to do it exactly after using LogonUser function.
Can any one help me ?...I m writing my structure here..
----------------------------------------
void main()
{
RetVal = LogonUser(pszUserName,pszDomainName,pszPassword,dwLogonType,dwLogonProvider,&hToken);
if (RetVal != 0)
{
ResImp = ImpersonateLoggedOnUser(hToken);
if (ResImp != 0)
{
hHandle = FindFirstFile(....) // Here I want to find only those files which have right so that user "pszUserName" can access it..."
if( all files found)
{
list all files here....
}
else
{
You don't have rights to access this files/directories...
}
}
}
}
------------------------------------
Can you plz help me ? It's really urgent....
Thanking You...
Amarelia
|
|
|
|
|
I want to change the position of mouse pointer in my Internet Explorer.For this i have written the code below.But the createEventObject method fails.Please if someone could tell me what is the reason for this failure and what should be done so that createEventObject returns success.Thanks in advance.
IHTMLEventObj *pEvtObj = NULL;
IHTMLDocument4 *pDoc4 = NULL;
hr = m_pHTMLDoc->QueryInterface( IID_IHTMLDocument4,(void**)&pDoc4);
//m_pHTMLDoc is a valid document pointer
if(SUCCEEDED(hr))
{
hr = pDoc4->createEventObject(NULL,&pEvtObj);
if(SUCCEEDED(hr))
{
CComQIPtr<ihtmleventobj2, &iid_ihtmleventobj2=""> pEvtObj2;
pEvtObj2 = pEvtObj;
g_Xpos = g_lastXpos = Xpos;
g_Ypos = g_lastYpos = Ypos;
hr = pEvtObj2->put_clientX(Xpos);
if(hr == 0)
{
AfxMessageBox("put_clientX successful");
}
else
{
AfxMessageBox("put_clientX failed");
}
hr = pEvtObj2->put_clientY(Ypos);
pEvtObj2->Release();
}
pDoc4->Release();
}
|
|
|
|
|
HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_EDIT2)
{
pDC->SetTextColor(RGB(255, 0, 0));
hbr = m_brush;
}
return hbr;
}
this code works beautifully when changing an edit box (IDC_EDIT2), but if i put a static name instead like IDC_STATIC1, the static stays the same color (it doesnt change colors), anyone know how this can be solved? im just trinyg to change 1 static and leave the rest alone
|
|
|
|
|
As IDC_STATIC1 equals -1, you'll have to select another id for your static control.
|
|
|
|
|
Massive brainfart here. IDC_STATIC is -1 of course.
|
|
|
|
|
hi all,
if i want to compile C++ but no C#,VB.NET,J# etc... does it enough to get a Visual C++ Standard Edition? i read MS's comparision with prof. edition. i just dont sure missing of an optimized compiler whether a problem or not.!
any help?
thanks,
jim
|
|
|
|
|
Both the Standard version and the Professional version support C++, C#, VB.Net and J#. The key is that the Professional version boasts a more advanced compiler that has more options and can be made to produce more efficient/smaller/optimized code targeting a certain platform.
Unless you're doing applications that are extremely heavy (such as CRM or large-database applications, programs such as the SAP/R3), then the Standard version will suit you just fine. The advantages of the Professional version also come in handy when the code contains huge amounts of iterations, loops, recursions or similar procedures.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Hi
Could someone point me to some online material about C++ global consts? I need to know in what order are they initialized, where they are stored, etc. For example, in my current program, I use a string defined as:
const char *const A_STRING = "abcdef";
This string is defined in a header file that is included in many other files. The code compiles and links OK, but if I changed the definition to:
const char* A_STRING = "abcdef";
the linker complains that A_STRING was multiply defined.
Thanks!
|
|
|
|
|
You probly shouldn't use global constants and C++ in the same sentence - it is a travesty to behold. But, if you need to - stick a static keyword in front of the const.
-----------------------------
All truth passes through 3 stages.
First, it is ridiculed.
Second, it is violently opposed.
Third, it is accepted as being self-evident.
|
|
|
|
|
Hi
Thanks for the reply. I am just curious, why's global constants such a travesty in C++? I always thought they're the preferred replacements for #define preprocessor? What's the advantage that I gain by defining them as static? Thanks!
|
|
|
|
|
Because he once read that globals where bad and doesn't really understand why.
There is nothing wrong with global constants. As you noted, they are the repacement of #define.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Tim Smith wrote:
There is nothing wrong with global constants. As you noted, they are the repacement of #define.
2nd on that! I always prefer static const globals over #define s as they are type-checked and that is solid ground for morally sound C++ coding.
~Nitron.
ññòòïðïðB A start
|
|
|
|
|
Maybe I was a bit harsh there, but under the princliple of OOP you are supposed to encapslate everything including const data. This is a purist's view, so don't take any mind if you approaching it from a practical standpoint. static will ensure that the data is instantiated in the data segment of your software, rather than on the heap or stack. That goes back to your question on when it is created.
-----------------------------
All truth passes through 3 stages.
First, it is ridiculed.
Second, it is violently opposed.
Third, it is accepted as being self-evident.
|
|
|
|
|
Indrawati wrote:
const char* A_STRING = "abcdef";
This defines a variable that is a pointer to a constant string. The pointer can be changed to point to different locations, but the value at that location can't be changed. So in effect, it's not really a constant at all. The compiler complains because you've got a multiply-initialised variable defined in multiple files.
Indrawati wrote:
const char *const A_STRING = "abcdef";
This truly is constant, so the compiler can safely optimise it out and prevent multiple definitions.
As was said above, adding static to the front of the definition will prevent the multiple-definition problem.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
HI
I am writing a DLL in which i am creating a thread like this:
extern "C" __declspec(dllexport) BOOL ReadCard(char *pData)
{
if(g_hPort == NULL)
{
strcpy(pData,"COM port is not opened");
return false;
}
g_hThreadRead = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadFunc, 0, 0 ,&dwThreadID);
return true;
}
This create thread function is suppose to go to ThreadFunc() but it is not going . can any body give me some suggestion why it is not going to ThreadFunc()
DWORD WINAPI ThreadFunc(LPVOID pData)
{
BOOL bSuccess = TRUE;
while(1)
{
int index = 0;
// Clear the dara buffer first.
memset(g_strResult,0x00,500);
if ( l_bTaskAbort )
{
Disconnect();
return(false);
}
//if card is seated
// Ask the user to remove the card
// if the card is removed then read the data
if(GetCardData())
{
//MyMSR_ShowResult(0);
strcpy((char*)pData,g_strResult);
break;
}
}
return bSuccess;
}
Thanks in advance
shailesh
|
|
|
|
|
Why aren't you checking the return value from CreateThread? If a NULL is returned, GetLastError will return information on why it failed. It can't hurt to try that.
Also, try to avoid using (LPTHREAD_START_ROUTINE) cast. If you can't use the routine name without the cast, then chances are your routine is declared wrong and the thread might fail in strange ways.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
I Checked the returned value from CreateThread, it is a handle to the thread but it is not going to the function. Also i Called the GetLastError() after the createthread() function it is returning zero.
Any more suggestions...
Thanks
Shailesh
|
|
|
|
|
I am automating word to create mailing labels from a text file using mfc. I am having a problem when I bring up a new instance of word (the one which I am automating) and another (non-automation) instance is already running. I get a box to save normal.dot, I have tried Microsofts fix to delete the autosave version ~normal.dot but this does not work. Any suggestions would be greatly appreciated.
cheers,
Andy
carpe diem!
|
|
|
|
|
I have code that uses
ExecuteSQL( LPCSTR lpszSQL );
to Insert into rows in a MS Access database.
It works well 99.9% of the time. However, once in a great while the sql string to be inserted contains a single quote in the values field.
I do not want to mask out the quote, is there a sequel encode function I can use to write values like [Dave's object']?
thanks
|
|
|
|
|
Replace the ' with '' (that's two ' s)
modified 12-Jul-20 21:01pm.
|
|
|
|
|
|
I usually use the ` character (0x60, grave accent) which has the advantage to be graphically closer than the double quote.
|
|
|
|