草庐IT

c - 通过 Hook 调用在 Windows 进程中加速或静音音频播放

我有一个应用程序,我没有播放音频的源代码,但缺乏加速或暂时静音音频播放的工具。我正在尝试通过注入(inject)一个dll并HookwaveOutOpen、waveOutWrite(并分别阻止播放或尝试waveOutSetPlaybackRate以实现静音和加速)来添加这两个功能。但是我有几个问题。让我们先谈谈“静音”按钮,因为这是我的第一项业务:我将函数的Hook版本称为MyWaveOut...1)我可以毫无问题地挂接这些函数,并且我看到它们在dbgView日志语句中被调用。我的第一次尝试是只拦截waveOutWrite函数调用,如果我的“静音”按钮被按下,则只在MyWaveOutW

c - Windows 上多线程应用程序中非阻塞服务器/监听套接字的最佳方法?

我正在Windows上编写TCP服务器/客户端应用程序,以熟悉WinsockAPI。我有UNIX背景,想知道以下哪种方法是实现应用程序的最佳方法:首先是规范必须能够在多处理器和单处理器系统上很好地扩展。没有硬件连接限制。应用程序既可以监听连接,充当服务器,也可以充当客户端。多线程。第一种方法:在“服务器”线程中用于监听的非阻塞类选择套接字。我们为每个连接的客户端生成一个单独的线程。第二种方法:在“服务器”线程中阻塞用于监听的套接字。我们为每个连接的客户端生成一个单独的线程。第三种方法:在“服务器”线程中用于监听的非阻塞类选择套接字。每个传入连接都没有单独的线程,我想协议(protoco

c - Win VS2008 调用约定 : Delphi dll from c

我在C应用程序(VS2008,Win)中调用了一个用Borland中的Delphi编写的dll中的函数。该函数有效,但每次调用后我都会收到此错误:“ESP的值未在函数调用中正确保存[...]”,这意味着我的调用约定是错误的。我不知道Delphi,也没有完整的dll代码,但我相信这是Delphi函数:functiontranslate(file1,file2:PChar):PChar;stdcall;...Result:=PChar(c);end;exportstranslate;c中的相关部分:typedefchar*(__stdcall*translate)(char*,char*)

c - 监视(Windows)C 中特定进程的 CPU 和内存消耗?

我想在windows(ntarchitecture-xp,vista,win7)中监控给定进程的cpu和内存消耗,每隔几秒制作一个图表我四处搜索但只找到非C解决方案(java、c#、c++等)我知道有一个PerformanceCounter类,但显然它在c中不可用。谢谢 最佳答案 Win32性能计数器:http://msdn.microsoft.com/en-us/library/aa373083%28v=vs.85%29.aspxDeveloperAudience:PerformanceCountersisdesignedforu

c++ - 在 C++ 中向本地安装的 MSSQL DB 添加值

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion我查了一下,发现了大量的第3部分库等。我无法选择要使用哪一个。我对我的项目真的没有非常具体的限制。不过,我个人希望尽可能减少开销并降低代码复杂性。那么你建议我采用什么方法连接到本地安装的MSSQL数据库,连接到它,最后向它写入值。谢谢

c - 从一个函数传递到另一个函数的值发生变化......无法弄清楚为什么?

我有一个非常奇怪的问题,我无法理解。这是C代码://belowarethevaluesbeingpassed//longnumTreePeriods=80//doublelength=0.23013698630136986TTimeLineInfo*tlInfo=GtoTimeLineInfoNew((long)ceil(numTreePeriods/length),/*ppy*/0L,1,FALSE);现在这里是上面调用的GtoTimeLineInfoNew函数的签名:__declspec(dllexport)TTimeLineInfo*GtoTimeLineInfoNew(long

c - alá insight for windows

我正在尝试在我的Windows7机器上安装InsightDebugger,但没有成功。我安装了cygwin完整包,并下载了insight的源代码。我正在按照thistutorial中的步骤操作没有任何成功,我已经花了2个小时尝试编译,但没有。它总是给我同样的错误。/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winsock2.h:632:32:error:conflictingtypesfor'select'/usr/include/sys/select.h:31:5:note:previousdeclarat

c - 正确终止多线程 Windows 控制台应用程序

下面是我从我正在进行的一个更大的项目中拼凑出来的一个简短的概念证明。该项目有一个使用CreateThread创建的工作线程,用于监视目录的更改。我有一些清理代码需要像关闭句柄和释放一些内存一样运行。该应用程序不作为后台进程或服务运行。它通过命令行运行,一直运行到用户关闭命令窗口或按下Ctrl-C。有更好的方法吗?我尝试使用atexit但是当进程被终止时显然没有被调用。请注意,我使用的是C,而不是C++,并且没有使用MFC、AFX或WindowsAPI以外的任何其他API。根据评论,我想这的另一部分是如何在多线程环境中正确终止应用程序?这样可以吗,还是我应该在thread_func中调用

java - 在 Windows 7 上从 Java 启动 CYGWIN 构建的可执行文件失败并显示 "error while loading shared libraries: ?: No such file or directory"

有问题的代码在早期版本的Windows上或多或少地以完全相同的配置工作,但是,还不知道它是否可以在Windows7上运行!这就是我现在需要解决的问题。简而言之,一些C代码在启动Java程序之前执行一些配置和安全检查,传递一些在Java中几乎不可能轻松完成的数据。反过来,Java在适当的时间启动相同的C代码,然后它自己启动一个不同的Java程序。第二个程序启动需要完全独立,(想想nohup)因此是第二个启动。现在发生的事情是C程序以普通方式启动Java程序,但是当Java尝试启动C程序时,它会出现如下错误:/cygdrive/c/opt/ST/v3.3/bin/ST.exe:errorw

c - 为什么更改 Win32 窗口的父窗口时会出现圆角?

我正在尝试学习如何使顶级Win32窗口成为另一个窗口的子窗口。当我更改窗口的父窗口时,我仍然会看到难看的圆角,就好像它是一个带有圆形标题栏的顶级窗口一样。为什么?我该如何解决这个问题?(我无法得到WM_UPDATEUISTATE的帮助,但我也不确定如何正确使用它。)#include#include#includeint_tmain(){WNDCLASSwndClass={0,&DefWindowProc,0,0,NULL,NULL,LoadCursor(NULL,IDC_ARROW),GetSysColorBrush(COLOR_3DFACE),NULL,TEXT("MyWindowC