Logo



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()函数也能执行,这里介绍的是常规调用库函数的方法。

  ocx控件封装串口通信源码 


评论


最新评论