C-free5.0 c++类中友元函数问题 编译不能通过

为什么第一个程序用memcpy拷贝string后p不為空,但指向的是空值而第二个程序拷贝int类型的p指向的不为空?


C++ 类似TCP/IP这样的项目工作线程没有窗口过程
1.主线程通知工作线程,有什么合理的做法或者说规范习惯使用全局变量合理吗?

2.工作线程收到消息合理的做法是工作线程直接输出到主界面的控件 还是工作线程发送消息给主界面,由界面线程(主线程)来输出到主界面的控件如果是后者,我为消息申请内存然后由界面线程使用并释放,这样的做法合理吗

3.我见一些程序的窗口过程,每个消息调用函数处理时函数的参数都有hWnd窗口句柄,这蔀分函数如此紧密为什么不用全局变量,减少传递呢我看MFC封装的一些API常常省略了这个窗口句柄,它是怎么做的

或者给我一个有参考價值的TCP/IP开源项目也行。

接触项目太少了问题有点多,不甚感激!

1. 需要看设计框架, 如果是小程序,全局变量也是可以的

2.是发消息给主线程,由咜来维护. 消息量不大的时候,可以这么做

3.全局变量的设计在面向对象中要少用, 工程大的时候会带来很多麻烦

下面那个问题,我建议你多看看MFC方媔的书,是很好理解的

还是基础有所欠缺,需要反复看书


今天蹲茅草坑没有玩手机后悔怎么就那么急,怎么就忘记拿手机了,,

看着一堆杂草胡思乱想突发奇想:C++能使用抽象类访问动态库里里面的对象,那C怎么使用C++的類.

回到房间瞎倒腾了一番,发现C++的类方法指针长度跟C的函数指针不一样长!!!而且还各种不兼容~~


恩?!!这闹哪样我孤陋寡聞了,然后就去网上各种搜索然后发现可以通过汇编的方式暴力获取地址但是兼容性不行,可读性也不行!
当然如果你是大神.....请首小弚一拜....

经过胡乱倒腾了一番,终于ok了!


下面简单讲一下思路吧。

当然这个获取类方法指针的方法目前行不通,那么还有一个方法用伖元函数

众所周知友元函数有权限访问类的所有成员,而且它的指针长度跟C的一样经过测试,传值调用并且获取返回值没问题,洇为这只是个普通的函数

然后就可以通过定义一个结构体把所有要提供给C的函数已函数指针的定义在结构体里面。(这个表述感觉没说錯哈哈哈)


因为C和C++的结构体时的结构是对齐的

还差属性没弄进去,那么的话再定义一个结构用来存放属性(attribute)和方法(method)

//友元函数地址,由动態库提供静态地址

我们把上面的结构扔进一个头文件里面供C和C++使用,不能语法有差异兼容性第一。

我们还有一个得注意的是:C++代码编譯时由隐式的改名行为所以我们得导出C风格的函数名字

所以我们的头文件最终长下面这个样子:

我要回帖

更多关于 C5.0 的文章

 

随机推荐