- 博客(48)
- 资源 (16)
- 收藏
- 关注
原创 无法解析的外部符号 之 __imp__calloc
我们都知道,遇到无法解析的外部符号时,首先想到是不是对应的库没有包含或者对应的库是错误的。今天用到第三方库,遇到一个“无法解析的外部符号 __imp__calloc”。最后发现是第三方的头文件里,对calloc函数进行了重定义。修改后解决。当然还有很多别的原因会导致“无法解析的外部符号”的问题,这时候就需要大家仔细分析符号的定义,包含等原因。...
2018-08-23 12:45:14 4403
转载 编译平台与目标平台不一致导致的麻烦
今天VS2010编的EXE在XP上显示不是有效的win32应用程序,为此,我们需要编写出对环境依赖小的,能到处跑的程序;一、X86,即一般普通PC上跑的程序版本,不用修改工程属性二、X641、设置工程平台---会在工程目录下生成 X64 文件夹在工具栏--->生成--->配置管理器 窗口设置“活动解决方案平台”和“平台” 为X64,“平台”那里没有X6
2017-12-15 11:45:07 991
原创 linux进程退出,线程资源用pthread_detach释放
linux下,用pthread_create创建线程后,线程的默认状态为joinable,如果程序退出,线程没被join,则会有线程的资源没有被释放。调用pthread_join可以,但是程序会再调用该函数后阻塞住。替代的调用pthread_detach,该函数可立即返回,有2种方法。1:子线程里调用:pthrad_detach(pthread_self());2:父线程里调用:p
2017-08-15 15:16:28 4945 4
原创 ffmpeg 返回错误数字含义
我们是用ffmpeg库函数是,例如在调用av_read_frame、avcodec_decode_video2,会给我们返回一个数值。例如错误值-1094995529, 将其转换成十六进制为-0x41444E49,在ACSII中, 0x41 = 'A', 0x44 = 'D', 0x4E = 'N, and 0x49 = 'I'。因为返回的错误值是经过FFERRTAG(可以理解为大小端
2017-08-11 11:35:57 4769
原创 SetPriorityClass 设置当前程序的优先级
在一些特定的情况下,我们需要设定我们程序的优先级比较高,这样能保证在程序的运行过程中,程序几乎不用考虑在被CPU执行时不被其他程序意外抢占。在winbase.h中是这样定义的:1.函数定义:WINBASEAPIBOOLWINAPISetPriorityClass( __in HANDLE hProcess, __in DWORD dwPriorityCl
2017-08-09 10:02:12 8405
转载 定义结构体时变量名后的冒号和数字
结构体中会有冒号的情况,如下: [cpp] view plain copy print?struct frame_control { u_char fc_subtype : 4; u_char fc_type : 2; u_char fc_protocol_version : 2;
2017-08-04 16:21:12 3192
转载 设置进程的显示名称
有时候在LINUX下,fork子进程的时候,像nginx里的一样,想让子进程的名字可以自定义。参考网上文章之后,可以通过修改argv[0]的值来改变子进程的名字,但是要注意新标题的长度。这时需要注意environ变量。查看nginx源码,大致了解了这个过程。假设需要把a.out的ps名称修改为title,那么需要把title复制到argv[0]指向的内存,并且把argv[1]设为0
2017-08-03 14:34:40 1827
转载 让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件
正常情况下,当我们用VC编译出一个Console/Win32类型项目的exe程序时(这里暂不考虑MFC程序),会依赖于msvcrxx.dll文件(xx为不同VC对应的版本号,VC2005为80,VC2008为90,VC2010为100),发布程序的时候,就需要把对应的dll也copy过去,比较不方便。通过以下的方法,可以让exe不依赖于这些dll(不过生成的exe会大很多)以VC2
2017-08-01 17:25:07 589
原创 自己保留。 msys以及MinGW的安装方法与下载地址
http://zengwu3915.blog.163.com/blog/static/27834897201462715824380/
2014-09-18 10:06:20 478
原创 【杂记】引用和指针以及const
直接切入主题: 实现一个计算平方的功能;内联函数:inline double square(double x) {return x * x; }宏定义:#define square(x) x * x差别:c = 6; 计算square(c++);自己试着写一下,可以分析出差别。
2014-06-11 12:13:35 457
转载 刘亚洲:中国历史是一部改善从恶的历史
每每看到类似的文章,都自我感觉非常理解,有时就会忽略,不去读。也会有一些其他原因。以我来说,那些站在国家高处人的文章更能吸引我的眼球,超过媒体的新闻传播。因为相对于媒体,他们的文章在话语间少的是一些官腔,说的话在部分人听来可能是不好听的,但是确是能触动我们心里的,值得我们去思考的。为什么在这里也发下这种类似的文章呢。就是想我们的程序员同胞们,不要每天都值顾着编代码,想代码。要多开阔开阔自己
2014-01-03 10:25:35 1299
原创 使用opus音频编码流程简介
直接切入主题:1.创建一个OpusEncoder类型的对象。 opus_encoder_create()。2.对编码对象进行参数设置。opus_encoder_ctl()。包括比特率,带宽,是否使用vbr等参数信息。3.当然就是音频编码啦。opus_encode(),该函数返回编码的后的音频长度。4.使用完成之后,别忘记删除这个OpusEncoder对象,opus_encoder_
2013-12-30 10:33:45 4432 3
原创 使用DirectSound进行PCM声音采集
msdn有directsound函数的讲解,网上有类似流程的例子。我就不说废话了哈,直接说一下步骤, 因为步骤清楚了,自然写起来就不那么费劲了。^ 。^第一步:初始化 CoInitialize();第二步:创建一个LPDIRECTSOUNDCAPTURE8类型的设备,我用的DirectSoundCaptureCreate8()第三步:创建一个LPDIRECTSOUNDCAPTUREBU
2013-12-23 16:15:36 1507
转载 GetLastError的返回值的含义:
GetLastError的返回值的含义:(0)-操作成功完成。(1)-功能错误。(2)- 系统找不到指定的文件。(3)-系统找不到指定的路径。(4)-系统无法打开文件。(5)-拒绝访问。(6)-句柄无 效。(7)-存储控制块被损坏。(8)-存储空间不足,无法处理此命令。(9)-存储控制块地址无效。(10)-环境错 误。(11)-试图加载格式错误的程序
2013-12-19 14:24:57 1159
原创 关于socket编程的小总结
最近在写一些socket小程序,因为是初次写,所以在一些细节上遇到一些问题,这里说一下我队这些问题的理解,如果不正确,欢迎指正。在我的程序中,我想把发送和接收数据的操作分别放在两个线程中,即发送线程和接收线程。在最初的实现中,我的两个线程使用的是共同的一个socket以及端口号,接收和发送信息到服务器。服务器通过获得的我的ip及端口号,返回给我发送到服务器的字串。在实验过程中,发现我启
2013-12-19 14:11:31 548
原创 选择排序法
今天看了一些关于c++算法的文章。发现自己在大学时候学习的数据结构和算法相当的烂啊。关于一些排序方法就已经忘记的很多了,虽然部分算法有些印象。这里我就来说说选择排序法的简单的算法:共有n个数据,第i次,将第i个数据对其后的每个数据进行比较,比较的次数为n-i次。记录最小的数据,然后将最小的数据同第i个数据相交换。直到所有数据比较完成。{ 48 62 34 74 55 13 3
2013-12-17 15:52:23 491
原创 windows编程小小总结
这几天闲来无事,把自己的socket小程序改成了win应用程序。想让自己对windows编程多动动手,记下自己忽略的小东西。如果大牛扫过,请直接无视吧。1.创建窗口的类型。 编辑框类“edit”; 文本框类“text” 等等; 对于在编辑框中实现多行显示,就是在createwindow中,将第四个参数加一个ES_MULTILINE;2.获取窗口的输入文字等。 因为工程多为unicode版本
2013-12-17 11:48:40 547
原创 信号量简单使用流程
1.创建一个信号量: createsemaphore()。 函数的讲解网上很容易搜到;2.对创建的信号量进行计数+1操作: releasesemaphore()。3.对信号量计数进行-1操作,也就是wait操作:waitforsingleobject();4.删除信号量:closehandle();很简单,不知道对初学者有没有简单的帮助。我在这里标注一下,是因为对它还不
2013-12-17 11:26:44 763
原创 hook direct3d的Present时的注意事项
大家根据msdn上的函数可以获取到direct3d中的数据,自己弄一下就好。写的时候主要注意pitch的宽度和从swapchain中读取的宽度可能不一样,这时候在写进文件要注意使用那个宽度。
2013-09-23 16:48:03 1877
原创 【求助】求D3D8多次初始化的一个问题
求大牛解答一下,D3D8的游戏,在多次初始化时的步骤大概是怎样的? 比如一个游戏登陆界面一个样,然后加载地图之后,需要重新初始化D3D8,这之间的操作时怎样的呢?
2013-09-17 10:38:19 633 1
原创 【求助】D3D9,怎样利用IDirect3DSurface9资源
小弟知道D3DXSaveSurfaceToFile这个函数可以将IDirect3DSurface9类型的后台缓冲保存成图片,但是我现在想自己使用IDirect3DSurface9这个资源,自己写函数实现保存IDirect3DSurface9资源为图片,不知道应该怎么操作通过getbuffer获得的这个类型的指针,求大神前来支招。小弟先感谢一下了!
2013-09-09 17:17:10 2053 2
原创 dllmain中不能创建线程
昨天在dllmain中创建了一个线程,但就是无法进入自己的线程。怪我自己学艺不精、马虎,在dllmain后没有return一个值,所以没有进入创建的线程。
2013-09-03 11:44:27 1374
原创 DLL中怎么创建D3D10的交换链
如题,我在dll中,调用d3d10.dll里面的createdeviceandswapchain函数创建交换链的时候,提示不能再dllmain中调用IDXGICreate..我应该怎么在dll中创建交换链呢?
2013-08-30 14:06:25 781 1
原创 __uuidof()函数
昨天在用swapchain的swap->GetBuffer(0, IID_ID3D10Resource, (void**)&backBuffer))),获取后台缓冲地址的时候,总是提示找不到IID_ID3D10Resource,但是通过相关头文件,vs确实可以找到它的类定义,就是返回未定义,后在用了__uuidof : if(SUCCEEDED(hRes = swap->GetBuffer(0,
2013-08-30 10:30:57 2280
原创 GETMODULEHANDLE总是返回null
大牛别喷,小弟第一次做这个,今天在用这个函数获取一个dll时,发现总是返回null。我就开始纳闷了,我是照着开源的项目写的呀,怎么会呢?于是上网查了一下,原来这个函数获取加载到进程的dll,不加载不行。可能那个开源的项目前面加载了,我没看到。 然后我就loadlibrary这个dll之后,就可以了- -。自己总结一下,大牛别喷- -
2013-08-30 10:26:51 1363
原创 【求助】 如何使用ID3D10resource资源
如题,我用ID3D10Device->CopyResource的方法拷贝了d3d10的backbuffer的数据,但是我应该怎样使用这个数据?把他保存成位图图像?d3d9有D3DXSaveSurfaceToFile的方法,不知道d3d10有没有类似的方法?第二个问题,求大神指导一下,我hook到指定进程,从dll中获取到了backbuffer的数据,怎么显示到我自己指定的窗口呢?如果用到了
2013-08-29 17:06:09 831 2
转载 CreateFileMapping和MapViewOfFile
在开发软件过程里,也经常碰到进程间共享数据的需求。比如A进程创建计算数据,B进程进行显示数据的图形。这样的开发方式可以把一个大程序分开成独立的小程序,提高软件的成功率,也可以更加适合团队一起开发,加快软件的开发速度。下面就来使用文件映射的方式进行共享数据。先要使用函数CreateFileMapping来创建一个想共享的文件数据句柄,然后使用MapViewOfFile来获取共享的内存地址,然后使用O
2013-08-27 15:25:28 949
转载 C++标准转换运算符reinterpret_cast
自己在这留一下: http://www.cnblogs.com/ider/archive/2011/07/30/cpp_cast_operator_part3.html
2013-07-11 15:40:02 482
转载 C语言位运算详解
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1
2013-07-11 10:52:38 499
转载 Windows SDK笔记
Windows SDK笔记(一):Windows程序基本结构一、概述Windows程序具有相对固定的结构,对编写者而言,不需要书写整个过程,大部分过程由系统完成。程序中只要按一定的格式填写系统留给客户的那一小部分。所需要完成的有:窗口类的定义、窗口的建立、消息函数的书写、消息循环。 二、消息处理函数Windows程序是事件驱动的,对于一个窗口,它的大部分例行
2013-07-10 16:14:51 615
转载 CALLBACK回调函数详解
凡是由你设计却由windows系统呼叫的函数,统称为callback函数。某些API函数要求以callback作为你参数之一。如 SetTimer,LineDDA,EnumObjects。 回调函数是由开发者按照一定的原形进行定义的函数(每个回调函数都必须遵循这个原则来设计)例如:----------------------------------------BOO
2013-07-10 16:12:56 796
转载 消息处理函数LRESULT CALLBACK WndProc()、应用程序主函数int WINAPI WinMain ()
一、消息处理函数 LRESULT CALLBACK WndProc();//二、应用程序主函数int WINAPI WinMain ()Windows程序是事件驱动的,对于一个窗口,它的大部分例行维护是由系统维护的。每个窗口都有一个消息处理函数。在消息处理函数中,对传入的消息进行处理。系统内还有它自己的缺省消息处理函数。 客户写一个消息处理函数,在窗口建立前
2013-07-10 16:12:12 1281 1
原创 涉及到的函数(自己查看使用,文章格式很乱)
GetWindowLongPtr http://msdn.microsoft.com/en-us/library/windows/desktop/ms633585(v=vs.85).aspxSetWindowLongPtr http://msdn.microsoft.com/en-us/library/windows/desktop/ms644898(v=vs.85).aspx
2013-07-10 14:09:06 1217
转载 Linux cpuinfo 详解
在Linux系统中,如何详细了解CPU的信息呢? 当然是通过cat /proc/cpuinfo来检查了,但是比如几个物理CPU/几核/几线程,这些问题怎么确定呢?经过查看,我的开发机器是1个物理CPU,4核8线程,Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz记录一下,判断的过程和知识。 判断依据:1.具有相同core id的
2013-07-09 15:48:57 814
转载 HMODULE
HMODULE表示模块句柄Handle 是代表系统的内核对象,如文件句柄,线程句柄,进程句柄。HMODULE 是代表应用程序载入的模块,win32系统下通常是被载入模块的线性地址。HINSTANCE 在win32下与HMODULE是相同的东西,在Win32下还存在主要是因为win16程序使用HINSTANCE来区别task。HWND 是窗口句柄 在
2013-07-09 11:25:39 4398
转载 [转载]GetCurrentProcessID、OpenProcessToken、LookupPrivilegeValue、AdjustTokenPrivileges
GetCurrentProcessID 得到当前进程的ID OpenProcessToken 得到进程的令牌句柄LookupPrivilegeValue 查询进程的权限AdjustTokenPrivileges 判断令牌权限 要对一个任意进程(包括系统安全进程和服务进程)进
2013-07-09 10:25:34 638
转载 转一篇进程权限的文章!
权限提升的作用如果在Windows 98我们要实现用程序关机或重启,只要调用一个API函数ExitWindowsEx()就搞定了。可是在2000/XP下,你会发现你刚刚编的关机程序一点作用都不起! 为什么呢?这是由于在NT或2000以上的系统,要实现关机或重启功能的程序必须获得SE_SHUTDOWN_NAME权限才行。还有就是往往我们是用管理员账号登录系统,可是有些进程就是无法关闭,而这些
2013-07-09 10:07:09 853
原创 不能用。。实例化抽象类
自己记录一下,别笑我是新手。 因为在修改filter的时候,出现了这个问题,所以记录一下。就是自己在修改后,将没用的功能删除掉了,所以filter的类对象多继承了删除的东西。
2013-04-18 10:53:03 585
48000采样率16bits双声道PCM
2014-01-06
核心编程资料
2012-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人