|
VFP ·R¥ÎªÌªÀ°Ï ¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
|
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD |
µoªí¤H |
¤º®e |
Ruey
µù¥U®É¶¡: 2003-03-12 ¤å³¹: 1698 ¨Ó¦Û: tunglo
²Ä 1 ¼Ó
|
µoªí©ó: ¬P´Á¤» ¥|¤ë 12, 2003 2:30 pm ¤å³¹¥DÃD: WIN32 API¨ç¼Æªº¨Ï¥Î®æ¦¡ |
|
|
VFP¤¤¹ïWIN32 API¨ç¼Æªº¨Ï¥Î®æ¦¡
¡@
ý¿ý¿¦b§Q¥ÎVFP½sµ{®É¡A¸g±`·|¥Î¨ìWIN32API¨ç¼Æ¨Ó¹ïVFPªº¥\¯à¶i¦æÂX®i¡A¨Ò¦p¹ïµù¥Uªí¶i¦æ¾Þ§@¡BÀò¨ú¨t²Î¸ê°Tµ¥¡A¦ý¬O¥Ñ©óWIN32API¨ç¼Æ¿í´`ªº¬OC++ªº¸ê®Æµ²ºc¡A¦bÀ³¥Î®É»PVFPªº¸ê®Æ®æ¦¡¦³©Ò°Ï§O¡A¦]¦¹¦b½Õ¥Î®É®e©ö産¥Í°ÝÃD¡A²{±N¦³Ãö½Õ¥Î¤è¦¡¸Ô¸Ñ¦p¤U¡G
ý¿ý¿VFP¤¤½Õ¥ÎWIN32APIªº¥Dn¨ç¼Æ¬O¡GDECLARE - DLL
ý¿ý¿¥¦¬Oµù¥U¥~³¡ Windows 32 ¦ì°ÊºA³sµ²µ{¦¡®w ( .DLL ) ¤¤ªº¤@Ó¨ç¼Æ¡C
»yªk¡G DECLARE [cFunctionType] FunctionName IN LibraryName [AS AliasName] [cParamType1 [@] ParamName1, cParamType2 [@] ParamName2, ...]
°Ñ¼Æ¡G
cFunctionType ªí©ú 32 ¦ì Windows .DLL ¨ç¼Æ¬O§_¦³ªð¦^È¡C¦pªG¨ç¼Æ¦³ªð¦^È¡A«h¥]§t cFunctionType ¡A§_«h¬Ù²¤ cFunctionType¡C
cFunctionType ¥i¥H¬O¥H¤UÈ¡G
cFunctionTypeý¿ý¿ý¿ý¿ý¿ý¿ý¿»¡©ú
SHORTý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿16 ¦ì¤¸¾ã¼Æ
INTEGERý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿32 ¦ì¤¸¾ã¼Æ
SINGLEý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ 32 ¦ì¯BÂI¼Æ
DOUBLEý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ 64 ¦ì¯BÂI¼Æ
STRINGý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ý¿ ¦r¦ê
FunctionName «ü©w¦b Visual FoxPro ¤¤nµù¥Uªº 32 ¦ì Windows .DLL ¨ç¼Æ¦W¡Cª`·N FunctionName °Ï¤À¤j¤p¼g¡C 32 ¦ì Windows .DLL ¨ç¼Æ¦W¥i¥H»P Win32 API ¤â¥U¤¤³W©wªº¤£¦P¡C¨Ò¦p¡AMessagebox ¨ç¼ÆÀ³¸Ó©R¦W爲 MessogeBoxA¡]¹ï©ó³æ¦r¸`¦r¤¸¡^©M MessageBoxW¡]¹ï©ó UNICODE¡^¡C¦pªG Visual FoxPro ¤£¯à©w¦ì FunctionName «ü©wªº 32 ¦ì Windows .DLL ¨ç¼Æ¡A«h±N¦r¥À A °l¥[¨ì¨ç¼Æ¦W§À³¡¡AVisual FoxPro ¥Î·sªº¨ç¼Æ¦W«·s·j¯Á¡C
¦pªG«ü©wªº 32 ¦ì Windows .DLL ¨ç¼Æ»P¤@Ó Visual FoxPro ¨ç¼Æ¦P¦W¡A©ÎªÌ¨ç¼Æ¦W¤£¬O¦Xªkªº Visual FoxPro ¨ç¼Æ¦W¡A«h±N 32 ¦ì Windows .DLL ¨ç¼Æ¦W§@爲 FunctionName¡A¨Ã¥Î AS ¤l¥yµ¹¸Ó¨ç¼Æ¨ú¤@Ó¦Xªkªº Visual FoxPro ¦W¡A³oÂI¦b¥»¥DÃDªº«á±±Nn»¡©ú¡C
IN LibraryName «ü©w¥~³¡ Windows .DLL ªº¦WºÙ¡A¸Ó°ÊºA³sµ²µ{¦¡®w¥]§t FunctionName «ü©wªº Windows 32 ¦ì .DLL ¨ç¼Æ¡C¦pªG爲 LibraryName «ü©w WIN32API¡A«h Visual FoxPro ´N¦b KERNEL32.DLL¡BGDI32.DLL¡B USER32.DLL¡BMPR.DLL ©M ADVAPI32.DLL ¤¤·j¯Á 32 ¦ì Windows .DLL ¨ç¼Æ¡C
AS AliasName 爲¤@Ó»P Visual FoxPro ¨ç¼Æ¦P¦W©Î¤£¦Xªkªº Windows 32 ¦ì .DLL ¨ç¼Æ¦W«ü©w§O¦W¡CAliasName ¤£¯à¬O Visual FoxPro ªº«O¯d¦r©Î¤w¸g¥Ñ Visual FoxPro µù¥Uªº Windows 32 ¦ì .DLL ¨ç¼Æ¦W¡C¥i¨Ï¥Î AliasName ¥h½Õ¥Î Windows 32 ¦ì .DLL ¨ç¼Æ¡CAliasName ¤£°Ï¤À¤j¤p¼g¡C
cParameterType1 [@] ParamName1, cParameterType2 [@] ParamName2, ... «ü©w¶Ç»¼µ¹ Windows 32 ¦ì .DLL ¨ç¼Æªº°Ñ¼ÆÃþ«¬¡C
Windows 32 ¦ì .DLL ¨ç¼Æ¥Ñ cParameterType «ü©w»Ýnªº°Ñ¼ÆÃþ«¬¡CcParameterType ¥i¥H爲¤U¦C¬Y¤@Ãþ«¬¡G
cParameterTypeý¿ý¿ý¿ý¿»¡©ú
INTEGERý¿ý¿ý¿ý¿ý¿ý¿32 ¦ì¤¸¾ã¼Æ
SINGLE ý¿ý¿ý¿ý¿ý¿ý¿32 ¦ì¯BÂI¼Æ
DOUBLE ý¿ý¿ý¿ý¿ý¿ý¿64 ¦ì¯BÂI¼Æ
STRING ý¿ý¿ý¿ý¿ý¿ý¿¦r¦ê
¦pªG°Ñ¼Æ¤£¬O Windows 32 ¦ì .DLL ¨ç¼Æ©Ò»ÝnÃþ«¬¡AVisual FoxPro 産¥Í¤@Ó¿ù»~¡CNull È¥i¥H§@爲¦r¦ê¶Ç»¼¡C
½Õ¥Î¨ç¼Æ®É¡AY«ö¤Þ¥Î¶Ç»¼¤@ӰѼơA¥²¶·¦b³o±ø©R¥Oªº°Ñ¼Æ cParameterType «á±¡B¦b½Õ¥Î¨ç¼Æ¬ÛÀ³Åܼƫe±¥]§t ¢I¡C¦pªG¦b DECLARE ¤¤©Î¦b½Õ¥Î¨ç¼Æ¤¤¨S¦³¥]§t ¢I¡A°Ñ¼Æ´N«öȶǻ¼¡C¦³Ãö»Ýn«ö¤Þ¥Î¶Ç»¼°Ñ¼Æªº .DLL ¨ç¼Æªº¸Ô²Ó¤º®e¡A½Ð°Ñ¾\¡mMicrosoft Win32 ½sµ{«ü«n¡n¡C
ªþª`
°Ñ¼Æ¦W ParamName1¡AParamName2 µ¥¬O¥i¿ïªº¡AVisual FoxPro ©Î Windows 32 ¦ì .DLL ¨ç¼Æ¨Ã¤£¨Ï¥Î¥¦Ì¡A¥¦Ì¥i¥H§@爲¨ç¼Æ±µ¦¬ªº°Ñ¼Æ¦W©M°Ñ¼ÆÃþ«¬ªº´£¥Ü¡C
»¡©ú ¦b±q Visual FoxPro ½Õ¥Î¤@Ó 32 ¦ì Windows .DLL ¨ç¼Æ«e¡A¥²¶·µo¥X±a¦³¨ç¼Æ¦W¡B¥]§t¸Ó¨ç¼Æªº Windows .DLL ¦W¥H¤Î¨ç¼Æ±Nn±µ¦¬ªº°Ñ¼ÆÃþ«¬ªº DECLARE ©R¥O¡C
爲¤F´£¨Ñ¦V«á¬Û®e©Ê¡AVisual FoxPro ¤´¤ä´© FOXTOOLS.FLL¡]¥]§t¦b FoxPro ¦´Áª©¥»¤¤¡^¡A¨Ã¤¹³\½Õ¥Î 16 ¦ì .DLL ¨ç¼Æªº Visual FoxPro API ®w¡C¦b Visual FoxPro ¤¤¡A½Õ¥Î .DLL ¨ç¼Æ®É¨Ï¥Î DECLARE ¬O¥i¨úªº¤èªk¡C
¦³Ãö Windows 32 ¦ì .DLL ¨ç¼Æªº¸Ô²Ó¤º®e¡A½Ð°Ñ¾\¡mMicrosoft Win32 ½sµ{«ü«n¡n¤¤ªº¤åÀÉ¡C
°õ¦æ DISPLAY STATUS ©Î LIST STATUS ¥i¥HÅã¥Üµù¥U¨ç¼Æªº¦WºÙ¡A°õ¦æ CLEAR ALL ©Î CLEAR DLLS ¥i±q°O¾ÐÅ餤§R°£µù¥U¨ç¼Æ¡C
¹ê»ÚÀ³¥Î¤¤ªº´XÂIÅé·|¡G
1¡B¦bAPI¨ç¼Æªº°Ñ¼Æ¤¤ªí©ú¬O¡§//address of¡¨ªº¡A¬Û·í©ó¦bC++ªº«ü¼Ð¦a§}¡A¦bµù¥U®É¡A¤@©wn°Ñ¼Æ Ãþ«¬«á¡B¦b½Õ¥Î¨ç¼Æ¬ÛÀ³Åܼƫe±¥]§t ¢I¡A¥Hªí©ú¬O«ö¤Þ¥Î¶Ç»¼¤@ӰѼơC
2¡B¹ï©óAPI¨ç¼Æªº°Ñ¼Æ¤¤Ãþ«¬爲LPCTSTR©MLPTSTRªº¨ç¼Æ¡A¦bµù¥U®Én©w¸q爲StringÃþ«¬¡A¨ä¥LÃþ«¬¤@¯ë§¡¥i©w¸q爲IntegerÃþ«¬¡C
3¡B¹ï©óAPI¨ç¼Æªº°Ñ¼Æ爲¤@Ó¡§µ²ºc¡¨ªº¸Ü¡A¥i©w¸q爲¤@¨¬°÷¤jªºªÅ®æ¦r¦êÅܼơA¦b³q¹L¥[@«ö¤Þ¥Î¨Ó¶Ç»¼³o¤@°Ñ¼Æ¡C |
|
¦^³»ºÝ |
|
|
|
|
±z µLªk ¦b³oÓª©±µoªí¤å³¹ ±z µLªk ¦b³oÓª©±¦^ÂФ峹 ±z µLªk ¦b³oÓª©±½s¿è¤å³¹ ±z µLªk ¦b³oÓª©±§R°£¤å³¹ ±z µLªk ¦b³oÓª©±¶i¦æ§ë²¼ ±z µLªk ¦b³oÓª©±ªþ¥[ÀÉ®× ±z µLªk ¦b³oÓª©±¤U¸üÀÉ®×
|
Powered by phpBB © 2001, 2005 phpBB Group ¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@
|