![]() |
||
Basic Member
加入日期: Oct 2000 您的住址: 天氣很好的地方
文章: 16
|
![]() 小弟奉老闆之命要修改一dll檔,此檔可在WIN98上供VB執行無誤,但WIN2000及XP則不行,經修改之後還是不行,小弟才疏學淺,望站上各位大大幫忙想想辦法修改,或提供相關論壇之連結,如蒙大德幫助,小地自當登門拜謝,喝杯茶,吃口包子囉,缸溫啦!
98下可執行: #include <afxwin.h> #include <conio.h> #include "p1.h" extern "C" int PASCAL EXPORT RP(int p_add) { return _inp(p_add); // for(int p2=0; p2<10; p2++); } ///////////////////////////////////////////////////////////////// extern "C" void PASCAL EXPORT WP(int p_add, int data) { _outp(p_add, data); // for(int p2=0; p2<180000; p2++); } --------我是分格線-------------------------------- //header file extern "C" { int PASCAL EXPORT RP(int p_add); } extern "C" { void PASCAL EXPORT WP(int p_add, int data); } --------我是分格線-------------------------------- 修改後 #include <afxwin.h> #include <conio.h> #include "p1.h" //////////////////////////////////////////////////////// class CDynamDLL : public CWinApp { public: virtual BOOL InitInstance(); virtual int ExitInstance(); CDynamDLL(LPCTSTR pszAppName):CWinApp(pszAppName){} }; //DEL BOOL CDynamDLL::InitInstance() //DEL { //DEL //DEL SetDialogBkColor(); //DEL return TRUE; //DEL } //DEL int CDynamDLL::ExitInstance() //DEL { //DEL return CWinApp::ExitInstance(); //DEL } extern "C" void PASCAL EXPORT WP(int x, int y) { _outp(x, y); for(int p=0; p<180000; p++); } extern "C" int PASCAL EXPORT RP(int add) { return _inp(add); // for(int 02=0; p2<180000; p2++); } --------我是分格線-------------------------------- <p1.h> extern "C" { void PASCAL EXPORT WP(int x, int y); } extern "C" { int PASCAL EXPORT RP(int add); } --------我是分格線------------------------------------ 謝謝大家幫忙 |
|||||||
![]() |
![]() |
Major Member
![]() 加入日期: Mar 2001
文章: 117
|
問題出在_inp,_outp~
windows NT/2000/XP不能在user mode直接讀寫I/O port 你應該是有個外面的硬體吧~ 寫個driver吧 |
||
![]() |
![]() |
Regular Member
![]() ![]() 加入日期: Jan 2002
文章: 79
|
這似乎要用到WDM驅動程式....
__________________
我要養柴犬!! |
![]() |
![]() |
Regular Member
![]() ![]() 加入日期: Feb 2002
文章: 89
|
藍色小舖有很多大大可以幫忙
你可以去那裡問 網址請用google找
__________________
Jeff-h |
![]() |
![]() |