|
发表于 2005-12-19 20:49:10
|
显示全部楼层
请问是不是这样使用。使用DLL把虚拟出com3,com11,然后用com口控件操作com11也就是操作com3了(因为它们是互联一起的)。然后用下面的例子来操作吗?
Using it With C/C++
In C and C++, you have to dynamically load the DLL file, find the function(s) you want to use, and call them. A sample function to do this in Visual C++ is shown below:
typedef bool (__stdcall *CreatePairFn)(char *Port1, char *Port2);
typedef bool (__stdcall *DeletePairFn)(char *Port1);
typedef bool (__stdcall *DeleteAllFn)(void);
typedef bool (__stdcall *SetStrictBaudrateName) (char *Port, bool StrictBaudrate);
typedef bool (__stdcall *SetStrictBaudrateHandle) (HANDLE hPort, bool StrictBaudrate);
typedef bool (__stdcall *CreatePairFn)(char *Port1, char *Port2);
typedef bool (__stdcall *DeletePairFn)(char *Port1);
typedef bool (__stdcall *DeleteAllFn)(void);
typedef bool (__stdcall *SetStrictBaudrateFn)(char *Port, bool StrictBaudrate);
typedef bool (__stdcall *SetBreakFn)(char *Port, bool bBreak);
typedef bool (__stdcall *QueryBusFn)(void* InBuffer, long sizeInBuffer, void* OutBuffer, long sizeOutBuffer);
typedef bool (__stdcall *SetWiringFn)(char *Port, void *Buffer, long sizeBuffer);
Code example:
bool CreateVSPair(char *Port1, char *Port2) {
OSVERSIONINFO VersionInfo;
HINSTANCE libInst;
bool returnvalue = false;
VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&VersionInfo);
if (VersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT)
libInst = LoadLibrary("VSPDCTL.DLL");
else
libInst = LoadLibrary("VSPDCTL.DLL");
if (!libInst) return false; /* Couldn't load library */
/* Substitute the typedefs above for functions other than CreatePairFn */
CreatePairFn CreatePair=(CreatePairFn)GetProcAddress(libInst, "CreatePair");
if (CreatePair==0) return false; /* Couldn't find function */
returnvalue=CreatePair(Port1, Port2); /* For example, Port1 = "COM5" and Port2 = "COM6" */
FreeLibrary(libInst);
return returnvalue;
}; |
|