c++虚函数经
总阅读次
总阅读次
总阅读次
总阅读次
摘引文章: https://www.gomcu.com/setsockop/
socket设置选项
1 |
|
返回說明:
成功執行時,返回0。失敗返回-1,errno被設為以下的某個值
EBADF:sock不是有效的檔描述詞
EFAULT:optval指向的記憶體並非有效的進程空間
EINVAL:在調用setsockopt()時,optlen無效
ENOPROTOOPT:指定的協定層不能識別選項
ENOTSOCK:sock描述的不是通訊端
Nagle演算法設置。
1 | https://jingyan.baidu.com/article/1709ad8097e5904634c4f03e.html |
总阅读次
1 |
|
1 | g++ -DTAKE2 ndef.cpp |
选择编译TAKE2的宏定义
总阅读次
[vs创建DLL/使用][1]
[1]:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29121609&id=3851844
知识:
Linux 动态库剖析
https://www.ibm.com/developerworks/cn/linux/l-dynamic-libraries/index.html
linux下动态链接库(.so)的显式调用和隐式调用
https://blog.csdn.net/lc_910927/article/details/42393121
DLL中类的显式链接
http://www.moon-soft.com/doc/14639.htm
Windows关键字
1 | BOOL APIENTRY DllMain(HANDLE hModule,DOWRD dwReason,void * lpReserved) |
将编译好的DLL_AGM.lib
和DLL_AGM.dll
还有头文件DLL_AGM.h
文件放入vs工程源码目录里,以及子目录Debug
目录里;
每次更改代码都要替换.dll以及.lib文件,如修改.h文件也要替换.h文件
参考文章:
[linux与windows调用动态库so dll文件] [2]
[2]: https://blog.csdn.net/cbbbc/article/details/45102861
add.cpp
1 |
|
add.h
1 |
|
封装成.so
1 | g++ add.cpp -fPIC -shared -o libADD.so |
生成
libADD.so
调用代码
4. main.cpp
1 |
|
g++链接.so
5.
1 | g++ main.cpp -L. -lADD -Wl,-rpath,./ -o b.out |
Templates
—–>Visual c++
——–>Win32 Project
在Overview Application Settings
选择Application type:
下的DLL
勾选Empty project
通过编译会生成^&*.dll
以及*&^.lib
在工程里新建一个include
文件,将编译dll
工程里的.h
文件放入include
里面
在工程目录新建一个lib
文件夹,将编译dll
工程生成的.lib
文件放入该目录
在使用dll工程中设置加载lib,
2018-06-22
隐式加载
add_header.h
1 | /* add_header.h */ |
libadd_source.cpp
1 | int add(const int a, const int b) |
main_test.cpp
隐式加载
1 |
|
编译指令:
1 | g++ -o a.out main_test.cpp -L. -ladd -Wl,-rpath,./ |