C/C++
文章平均质量分 67
program language
我又何必慨叹
毕业于郑州大学软件工程专业,目前从事Windows桌面软件、Linux服务器应用开发,熟悉C#、C/C++、Pyhton等编程语言
展开
-
C#的全局编译开关
首先的,我们知道,在C/C++的.c/.cpp/.h等中可以定义各种宏,这些宏在编译前会被编译器替换为指定的内容。并且,这些宏都是全局的,即不能存在两个名称相同的宏。而这些宏,是可以在一些情况直接作为编译开关的,比如: 在C#中,没有宏这一功能,但是可以类似的定义一些编译开关。通常的我们需要在.cs开头部分使用“#define ”+“开关名称”定义,比如:但是在多个文件中不想定义多个编译开关要怎么办,vs早就考虑到这点了,右键工程——属性,如下设置: 最后效果如下图,原创 2022-06-06 10:08:56 · 835 阅读 · 1 评论 -
mDNS实现之Bonjour与Avahi(二)——win/linux/arm交叉编译
1.BonjourBonjour - Apple Developer● 源码(mDNSResponder-878.70.2):https://opensource.apple.com/tarballs/mDNSResponder/● Bin&SDK:https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows Bonjour -win Bonjour ...原创 2021-12-22 19:09:25 · 3582 阅读 · 4 评论 -
mDNS实现之Bonjour与Avahi(一)——win/linux/arm交叉编译
官网:Bonjour - Apple Developerhttps://developer.apple.com/bonjour/1.WindowsBonjour SDK for Windowshttps://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows下载上面官网sdk,安装(Bonjour服务启动,依赖于mDNSResponder.exe进程),C#在工程中添加COM组件即可使用。 ...原创 2021-12-20 14:44:30 · 3512 阅读 · 10 评论 -
C/C++原始指针之悬空指针、野指针、内存泄露探究
#include <iostream>void update_p_ref(int * intp) { int temp = 1; intp = &temp; printf("up_r_p=%p\n", intp); printf("up_r_v=%d\n", *intp); //temp variable "temp" will be collected}//transfer parameters as referencevoid upd.原创 2021-12-02 15:58:17 · 957 阅读 · 0 评论 -
从Git上新拉下来的C#工程,其引用库全部被标记为黄色感叹号解决方法
在公司多人协作开发工作中,往往离不开Gitlab、Github、SVN等等其他代码管理平台的使用,以C#工程为例,很经常遇到的情况是,首次拉取代码并打开后,发现引用的dll几乎全部都标有黄色感叹号,包括System这些.net标准库,如下图:遇到这种情况不要慌,抽根烟冷静一下,想一想为什么标准库都没有正确找到,VS怎么这么辣鸡......具体原因是因为工程包含了一些NuGet包,这些第三方库未正确加载导致的。好的,烟抽完了,解决操作如下:①工具——NuGet包管理器——管理解决方案的NuGe原创 2020-09-21 15:29:35 · 6013 阅读 · 5 评论 -
VS2019搜索查找文本后程序异常关闭
使用的VS2019 Enterprise企业版,版本号为16.5.30104.148,如下图: 今天在努力写bug的过程中,使用到常用的搜索文本功能时,也贴个图吧: 不管我是点向前、向后、查找全部,VS都会变的奇卡无比,然后悄悄地异常关闭程序。经过不断测试,发现是由于打开的文件太多导致,.cs、.xaml、.xaml.cs等等,如下图: 关闭一些后,问题解决,再使用查找功能时就不会异常退出了。完美!...原创 2020-05-19 17:57:29 · 857 阅读 · 0 评论 -
System.DllNotFoundException: Unable to load DLL 'XX.dll': 找不到指定的模块。 (Exception from HRESULT:
自己是做C#上位机开发的,在公司一个项目中,需要由下位机开发的同事给到C++写的dll供上位机调用,在win10的64位上开发的程序,到了win7的64位上使用不了,以下是报错内容:System.DllNotFoundException: Unable to load DLL 'XX.dll': 找不到指定的模块。 (Exception from HRESULT: 0x8007007E...原创 2019-06-11 20:27:29 · 7279 阅读 · 2 评论 -
Unable to load DLL 'X.dll': The specified module could not be found.(HRESULT: 0x8007007E)
System.DllNotFoundException: Unable to load DLL 'XXX.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)自己调试电脑上无论debug还是release都运行正常,但将release打包或者直接给到同事使用,在使用到调用以上d...原创 2019-06-04 19:22:30 · 3870 阅读 · 0 评论 -
[转]dll 调试
1. 在Visual Studio中打开dll项目所在的solution,并且通过右击项目名,将该dll项目设置成为该solution的启动项目。2. 右击项目名 -> 属性(Property) -> 配置属性(Configuration Property) -> 调试(Debugging): 在右侧有“命令”(Command)一栏,其中填上Application...转载 2018-07-31 10:48:48 · 427 阅读 · 0 评论 -
error C3861: “ClearCtrlV(函数名)”: 找不到标识符
C++中声明和定义是分开的,所以在.cpp文件定义方法时,首先需要在.h文件中进行声明:extern "C" _declspec(dllexport) void ClearCtrlV(); 完美解决,新手进阶中。...原创 2018-07-06 15:33:32 · 704 阅读 · 0 评论 -
VS2013里C#程序引用dll不能在dll断点处中断
本人是个C++新手,在网上抄了一段监控键盘输入的代码,生成dll后在C#程序里引用,dll中加了断点却不能中断,提示“当前不会命中断点,还没有为该文档加载任何符号解决方法” 找了各方面网上的资料,都试过,最终问题原来是第一次写C++项目,好多设置没弄好,其他人的原因就不说了,自己的是因为:在配置属性——连接器——调试——生成调试信息——选择“是(/DEBUG)”。 第一篇...原创 2018-07-06 10:04:38 · 1166 阅读 · 0 评论 -
通过写dll方式注入全局键盘钩子,截获输入法语音识别内容(新手贴)
一、需求 最近要搞一个获取输入法语音识别内容的功能(C#程序上),比如在讯飞上,语音识别到后并输出相当于按了Ctrl+V将文字输出到光标位置,完成语音识别。最初的想法是在窗体上新建一个文本框,输入后再根据文本框的属性去获取,之后发现存在很多问题,比如光标移动了、程序不在最上层、被小化等不确定因素太多;故在了解到全局钩子后,即着手进行。二、实现 刚开始对钩子一窍不通,仅收到老大发来的一个...原创 2018-07-11 11:49:43 · 1800 阅读 · 3 评论 -
error D8016: “/O2”和“/RTC1”命令行选项不兼容 等各种不兼容问题
首先在debug模式下调好之后,这是由于release模式的配置和debug模式配置不同导致的,将与之配置相同即可原创 2018-07-09 17:16:49 · 11296 阅读 · 1 评论