ocx控件封装串口通信源码的简单介绍
怎样查看OCX控件的源码?
Delphi编写ocx控件封装串口通信源码的OCX可以用DEDE反编译器看到源码
C或是VB做ocx控件封装串口通信源码的ocx都看不到源码ocx控件封装串口通信源码的
如何解决MS串口通信控件MSCOMM32.OCX "建立空文档失败" 的问题
部件mscomm32.ocx不能正确注册
通常有一些小程序是基于串口控制控件MSCOMM32.OCX的,然而我们经常会遇到”部件mscomm32.ocx或其附件之一不能正确注册“这样的问题,而导致这些小程序无法运行。而解决办法就是在计算机上重新注册mscomm32.ocx组件。
具体步骤:
下载控件所需件文件MSCOMM32.rar,解压后得到文件MSCOMM32.OCX;
将文件MSCOMM32.OCX复制粘贴到C:\Windows\system32目录下,如果是64位的系统,则放在C:\Windows\sysWOW64目录下;
开始,运行cmd,打开命令行,粘贴代码 regsvr32 C:\Windows\system32\MSComm32.ocx,然后按enter,稍后会提示注册成功。如果是64位操作系统,则是运行代码 regsvr32 C:\Windows\sysWOW64\MSComm32.ocx;
如果提示注册成功,以下步骤可以忽略。
如果遇到提示”模块。。。已加载,但对 DllRegisterServer 的调用失败。。。错误代码。。。“,一般Windows7系统都会产生这样的问题,是因为Win7的安全性比较高,在运行里调出cmd命令行的时候实际上是没有高级权限的。因此,我们在操作运行中,输入cmd,然后不要急于按下Enter回车键,而是按下Ctrl+Shift+Enter组合键,这种情况下,就会提示是否以管理员身份运行cmd了,点击确定。然后再执行上面的第3步,就会发现成功了。
comct232.ocx是什么东西~~
OCX是控件ocx控件封装串口通信源码的一种封装形式ocx控件封装串口通信源码,在VB中使用控件时就要调用ocx控件封装串口通信源码他们ocx控件封装串口通信源码,还有就是在打包时要保证程序的正确运行ocx控件封装串口通信源码,就必须要将程序中使用的OCX控件正确的打进去,
MSCOMM32.OCX的文件,是做什么用的?
这个是一个windows下的通讯控件,是vb、delphi 等编程语音与RS232通讯用的;如要了解具体使用方法,可以去百度查一下!
C++ 封装OCX怎么提供对外接口
C一般不能直接调用C++函数库,需要将C++库封装成C接口后,才可以使用C调用。
下面举例,说明一个封装策略:
//code in add.cxx
#include "add.h"
int sample::method()
cout"method is called!\n";
//code in add.h
#include
using namespace std;
class sample
public:
int method();
将上面的两个文件生成动态库libadd.so放到 /usr/lib目录下,编译命令如下:
sudo g++ -fpic -shared -g -o /usr/lib/libadd.so add.cxx -I ./
由于在C中不能识别类,所以要将上面类的成员函数,要封装成C接口函数才能被调用。下面进行封装,将输出接口转换成C接口。
//code in mylib.cxx
#include "add.h"
#ifndef _cplusplus
#define _cplusplus
#include "mylib.h"
#endif
int myfunc()
sample ss;
ss.method();
return 0;
//code in mylib.h
#ifdef _cplusplus
extern "C"
#endif
int myfunc();
#ifdef _cplusplus
#endif
在linux下,gcc编译器并没用变量_cplusplus来区分是C代码还是C++ 代码(没有宏定义),如果使用gcc编译器,这里我们可以自己定义一个变量_cplusplus用于区分C和C++代码,所以在mylib.cxx中定义 了一个变量_cplusplus用于识别是否需要“extern "C"”将函数接口封装成C接口。但是如果使用g++编译器则不需要专门定义_cplusplus,编译命令如下:
g++ -fpic -shared -g -o mylib.so mylib.cxx -la -I ./
main.c
#include
#include
#include "mylib.h"
int
main()
int (*dlfunc)();
void *handle; //定义一个句柄
handle = dlopen("./mylib.so", RTLD_LAZY);//获得库句柄
dlfunc = dlsym(handle, "myfunc"); //获得函数入口
(*dlfunc)();
dlclose(handle);
return 0;
编译命令如下:
gcc -o main main.c ./mylib.so -ldl
下面就可以执行了。
需要说明的是,由于main.c 和 mylib.cxx都需要包含mylib.h,并且要将函数myfunc封装成C接口函数输出需要“extern "C"”,而C又不识别“extern "C"”,所以需要定义_cplusplus来区别处理mylib.h中的函数myfunc。
在main.c的main函数中直接调用myfunc()函数也能执行,这里介绍的是常规调用库函数的方法。