|
|
Hi all, my question is more like electronic questions but it is easy ...
I wanna send some data to LPT, directly.
I don't want to print data on printer, i just want to send data to LPT, ok ?
Well, i have not problem to sending data (I used _outp function, and my OS is Win98).
I just want to know, when i send a Byte to LPT then i send a voltage to LPT pins ???
Look, first i got the pins voltages from LPT1 by Multi Meter Digital, it is a instroment which can show the voltage to you.
It is result:
Pin 2 (data pin 1) to Pin 9 (data pin 8): voltage is variable between -0.59 to +0.60
ok ?
Then i sent a data (a Byte like 0x55) in enormouse loop ...
Then i got the pins voltage again, but i got the same result (-0.59 to +0.60) !!!
Now, i wanna know did my data send in LPT port ???
Why the pins voltage didn't change ???
Please help me ...
I need fast reply
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
I don't think that your meter can read the values quick enough to measure the voltage variations of the Parallel port like that. You will probably have better luck with an oscilliscope.
|
|
|
|
|
I want to write ActiveX with MFC7,but I can't find anywhere to add any property .Does anybody write anybody write ActiveX with VC7?
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Oh,never mind ,I found it,I don't know why MS changes the interface in VC7 so much
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Hi,
I'm having a bit of a problem linking my application using stl.
I have a library that uses the stl string. This is also used in a header file used by the application that links to the library.
I get a bunch of linker errors LNK4006 saying that std::basic_string is already defined in the lib.
Can anyone shed any light on what I need to do to overcome this?
|
|
|
|
|
The problem is that the std:basic_string object that you have is declared twice between your lib file and your application.
Is there a variable or a typedef in your project that is the same as a variable in the lib that you are using? Possibly in the header file that you mentioned.
Did you write the LIB?
|
|
|
|
|
Yep, I wrote it.
The class Token is declared in Token.h and is implemented in the lib, and used by the application calling the lib.
class Token
{
std::string tokenText;
public:
...
bool operator==(const std::string& aTokenText);
...
};
It worked ok, until I included token.h in the calling app. There are no other typedefs in the header and it has include guards.
|
|
|
|
|
If you comment out the one member tokenText in your class, do you still get the error?
|
|
|
|
|
Yep, I still get the linking error, even after I remove all of the references to string.
This is somewhat strange.
|
|
|
|
|
I would have to see the whole header file before I could help you any more, maybe you could post it, or email it to me?
|
|
|
|
|
I had a similar problem recently using the STL, have you tried linking your library to the DLL version of the CRT (C++ Project Options)? I can't remember why this solves the problem, but I think there's an article on MSDN (somewhere).
|
|
|
|
|
Aaaargh...
Thanks for your help guys. I had a break and came back at it with a fresh look.
It turns out that the lib was being compiled with debug single threaded and... you guessed it, the app was compiled with debug multi threaded.
Doh!
|
|
|
|
|
It was still fun racking my brain.
|
|
|
|
|
Is there a way to get the handle for scrollbars created with the WS_VSCROLL bits set at creation.
Thanx again!
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
I think that answer is... It Depends.
You first need to decide if the scrollbar of the window or control that you want the handle of actually exists.
You can do this with Spy++, one of the tools that comes with DevStudio. Go into the Spy menu and click Find Window. A dialog will appear with a little icon of a window with a crosshair in the middle of it. Drag this cross hair over the top of any window that you would like and the outline of the window below the crosshair will be highlighted.
The handle of the window that is highlighted will also appear in the edit box on the find window dialog of the Spy++ window. If the scroll bar that you want the handle of does not appear hightlighted, then there is no way that you will be able to get the handle of that control, because it does not exist. Try this with Notepad.
If the scrollbar exists, then you will be able to call GetWindow, with the GW_CHILD flag and continue search all of the child controls until you find the scroll bar.
The scroll bar may or may not appear depending on how the control is implemented and how it decided to handle the WS_VSCROLL style.
|
|
|
|
|
Once i get it into the target process's addy space, how do i then initialize it, and get it up and running?
I need to know how to use to initialize the dll after it has been injected into the other process,
Thank you
|
|
|
|
|
I take it that you are not loading the DLL with the LoadLibrary function.
Are you mapping it into your processes address space?
If so there are two things that need to be known.
1. If this is a resource only DLL, then you can simply use the objects inside.
2. If this is a DLL with executable code then you have other issues to worry about, like making sure that the different segments of the file have sufficient rights with the kernel to execute code and things like that.
If I am wrong in assuming what you are doing, please let me know what you are doing and whet your intent is for doing this and I can help you.
|
|
|
|
|
Well the library does contain executable code, the lib is accualy a hook, suposed to intercept calls made between the game executable and the true dll, im trying to make the loader call the executable, and then go ahead and load the dll, but after that im not sure what to do,
I am using LoadLibrary, Inderectly, And rights are not a problem with this specific loader, it takes care of all of that,
i wish i could post up some sample code but in order to get any idea of how it works it would take to much space,
info from somone that has done similer things had said that i need to call the base address of the executable for the initialazation to occure, Im not sure if this is right and i dont know how this is done,
Im trying to creat a small mod for a game that will aid in the administration of servers, But i need to intercept those calls, and im searching for ways to do this, The game is Quake3,
let me know what ya think. if you need more info, let me know, thanx for your respons
|
|
|
|
|
What you will have to do then is determine the address of the entry point into the DLL, basically DLLMain, and call that function.
There will be a little bit of work involved, and at first it is intimidating, but it is fairly straight forward.
Look up Matt Petriek's PEDUMP program on MSDN, or even the internet. This is a very good reference program for walking through the PE file format in order to get information such as the address of an entry point. There is even alot of source code that you will be able to use and modify for yourself. I found this article looking in MSDN Peering Inside the PE: A Tour of the Win32 Portable Executable File Format
This is the basic process:
1. With the base address, ADDR, that you have loaded your DLL into memory, cast this pointer to a PIMAGE_DOS_HEADER structure. This will get you started.
<br />
PIMAGE_DOS_HEADER dosHeader = (PIMAGE_DOS_HEADER)ADDR;<br />
2. You will get the next structure that you are interested in by taking ADDR + dosHeader->e_lfanew and casting that pointer to a IMAGE_NT_HEADERS inh structure.
3. Verify that the inh->Signature == 0x50450000 this signature is actually "PE/0/0", it signifies that you are using a PE file format. If this is not true, then you will need to do some research and determine what file type you are actually using, but I am certain that you will be OK with PE.
4. Finally the address that you have been waiting for is inh->OptionalHeader->AddressOfEntryPoint.
5. From here, you can declare a function pointer in your application with the same prototype as the DLL main function:
<br />
BOOL (DllMainPtr*)(HINSTANCE hInstance, DWORD dwReason, LPVOID );<br />
6. Declare a variable of this type:
<br />
DllMainPtr InjectEntry = inh->OptionalHeader->AddressOfEntryPoint;<br />
You may have to cast it, I do not know for sure.
7. And finally call the function:
<br />
InjectEntry(Hinst, DLL_PROCESS_ATTACH, NULL);<br />
This will initialize your DLL.
Let me know if this is what you need, and if it works.
|
|
|
|
|
Wow thx man big help, i looked up a couple of examples on it this should go alot easyer now, i understand the initialztion process a little better,
Thx again ill keep ya informed
|
|
|
|
|
How do I make a CSliderCtrl ownerdrawn...?
I've made buttons, combos, list and menus all ownerdrawn before, but the answer doesn't seem so obvious with CSliderCtrl...is it...?
What am I missing...?
Thanx!
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
|
I was afraid of that.
Thanx
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
I want to know how to use GDI+ to draw a rubber line?
Let's use GDI+ to draw! hoho
|
|
|
|