Tag: macos

宏突出显示为关键字:pascal

在查看FunkyOverlayWindow的示例代码时,我发现了一个非常有趣的声明: pascal OSStatus MyHotKeyHandler( EventHandlerCallRef nextHandler, EventRef theEvent, void *userData ); 在这里, pascal被突出显示为关键字(标准Xcode颜色方案中的粉红色)。 但我发现它是一个宏,有趣的是在文件CarbonCore / ConditionalMacros.h中定义为: #define pascal 那么,它应该做什么(或者是什么)呢? 也许它在过去有一些特殊的用途? 虽然这里的讨论可能不太适合,但如果这与答案有关,那么知道为什么Apple仍在使用Carbon会很有趣。 我没有Carbon的经验,但是这段代码似乎设置了一个键盘事件处理程序,让我想知道是否有任何优于Cocoa方法的优点。 碳不会被彻底清除吗?

通过TCP发送结构(C编程)

我有一个客户端和服务器程序,我想从客户端发送整个结构,然后在服务器上输出结构成员“ID”。 我已完成所有连接等,并已设法通过以下方式发送字符串: send(socket, string, string_size, 0); 那么,是否可以通过send()发送结构而不是字符串? 我可以将服务器上的缓冲区替换为相同类型的空结构吗?

在编译的C或C ++代码中加密密码

我知道如何在终端中使用GCC和CC编译C和C ++源文件,但是我想知道在编译后是否可以安全地将密码包含在这些文件中。 例如..我检查用户输入的某个密码,例如123,但看起来编译的C / C ++程序可以被反编译。 无论如何编译一个C / C ++源文件,同时保持源完全隐藏..如果没有,任何人都可以提供加密输入的小例子,然后检查密码,例如:(SHA1,MD5)

在OS X Yosemite上运行`locale -a`时,LANG和LC_ALL是否为空是不是很糟糕?

我使用OS X Yosemite。 当我运行locale我得到了这个: locale LANG= LC_COLLATE=”C” LC_CTYPE=”UTF-8″ LC_MESSAGES=”C” LC_MONETARY=”C” LC_NUMERIC=”C” LC_TIME=”C” LC_ALL= 题 LANG和LC_ALL的空虚是否/正常/偏好? 通常情况下,我对此并不在意,但我有一个警告 (process:16182): Gtk-WARNING **: Locale not supported by C library. Using the fallback ‘C’ locale. 当我使用GTK ( 这里是我之前关于此问题的链接 )。 人们一直在用许多语言( 例如Python )和不同的OS( 例如Ubuntu )来解决这个问题。 关键是我找不到任何C语言和OS X的解决方案。

使用dlsym的Ansi C补丁在linux下编译好但在Mac Os X上失败

我已经构建了一个小补丁来附加到某个应用程序并跟踪某些函数的调用。 其中,malloc()和open()。 我使用dlsym存储指向原始符号的指针,并用我自己的名称替换函数名称。 它可以在linux下完美编译和工作。 这是代码: #define _GNU_SOURCE #include #include #include #include #include /** * Interponemos nuestra funcion open * * @param char* filename * @param int flags **/ int open(char * filename, int flags) { static int (*real_open)(char*, int) = NULL; if (!real_open) real_open = dlsym(RTLD_NEXT, “open”); // Entero int p = real_open(filename, flags); fprintf(stderr, […]

swprintf在8位范围之外的字符上扼流圈

这发生在OS X上,但我怀疑它适用于任何UNIX-y操作系统。 我有两个字符串,如下所示: const wchar_t * test1 =(const wchar_t *)“\ x44 \ x00 \ x00 \ x00 \ x73 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00”; const wchar_t * test2 =(const wchar_t *)“\ x44 \ x00 \ x00 \ x00 \ x19 \ x20 \ x00 \ x00 […]

在OSX Yosemite上是否破坏了libsasl2? 缺少sasl_client_done

我在安装版本的libsasl2(Cyrus SASL)时遇到了一些麻烦。 特别是,似乎本地头文件和sasl_version报告版本2.1.26,但没有为全局函数sasl_client_done提供符号。 我很确定我应该有这个符号,因为: 它位于提供的sasl / sasl.h头文件中 cyrsus sasl NEWS文件列出了“Implemented sasl_client_done()/ sasl_server_done()”作为2.1.24function 在约塞米蒂以外的任何地方都提供2.1.26 复制: 请注意下面的示例打印 “impl:’Cyrus SASL’,版本:33619994,专业:2,未成年人:1,步骤:26” 在取消注释代码后,示例在具有相同库版本的Linux安装上编译和执行 未注释的代码在yosemite上产生链接错误 Undefined symbols for architecture x86_64: “_sasl_client_done”, referenced from: _main in foo-072675.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 使用以下命令调用编译器: clang -Wall -Werror […]

cocoa应用程序中的资源文件夹路径

我正在使用一些c文件的Mac OS X应用程序,我有一个配置文件,我将它添加到应用程序资源。 我的问题是“资源文件夹的相对路径是什么?” 我试过了 “[MyAppName]。应用程序/内容/资源/的config.cfg” 只有当我从xCode运行我的应用程序时才能正常工作,否则它不起作用! 我认为应用程序从“MacOS”文件夹开始,所以我使用了这条路径: “../ Resources / config.cfg” 但它也没有用:( 请帮忙

OSX的x86-64程序集libc例程在哪里?

首先,一些有用的链接到OSX的Libc代码: Git: https : //github.com/aosm/Libc.git (带有OSX不同迭代的标签) HTML: http : //www.opensource.apple.com/source/Libc/ 在那里,可以看到Libc 825.40.1(OSX 10.8.5)仍然具有像memcpy这样的函数的公共asm实现。 特别是在x86_64/string/bcopy_sse42.s 。 但是,从版本997.1.1(OSX 10.9)开始,它们中的大多数似乎都消失了。 虽然有一些留在x86_64/string 。 从这里可以看到: http : //www.opensource.apple.com/source/Libc/Libc-997.90.3/x86_64/string/ 。 来源是否已关闭其他来源? 查看OSX 10.8和10.9之间的差异并不表示它们可能已移动到源树内部的位置。 调试在OSX 10.9上运行的二进制文件时,很难错过对_platform_memmove的引用。 实际上,如果我们看一下bcopy.c的来源,我们会看到: #include void bcopy(const void *src, void *dst, size_t n) { _platform_memmove(dst, src, n); } 所以也许这会产生一些有用的东西。 但由于某些原因,我找不到(_)platform_memmove ,无论是因为缺乏贪婪的能力还是宏观技巧。 有人能帮我找到吗? 编辑 :我试图寻找platform / string.h ,但就像那个邮件列表海报一样,我无法在源代码树中找到它。 编辑 :在OSX […]

制作一个64位共享库,动态链接到Mac OS X Snow Leopard上的32位库

更新:经过一些阅读后,我发现这个问题非常普遍,你不能在同一个过程中混合架构,所以64位Java不能dlopen()像FMOD这样的32位库。 有没有可能的解决方法,请记住我正在编写自己的COD接口到FMOD库? 我需要在Max OS X上创建64位dylib,因为Java Native Access只喜欢64位计算机上的64位库。 问题是,我的C源代码动态地包含FMOD,在Mac上只提供32位dylib。 当我尝试编译时没有-m32选项(因为我必须输出64位dylib)我得到以下错误: gcc -dynamiclib -std=c99 -pedantic -Wall -O3 -fPIC -pthread -o ../bin/libpenntotalrecall_fmod.dylib ../../src/libpenntotalrecall_fmod.c -lfmodex -L../../lib/osx/ ld: warning: in /usr/lib/libfmodex.dylib, missing required architecture x86_64 in file Undefined symbols: “_FMOD_System_CreateSound”, referenced from: _startPlayback in ccJnlwrd.o “_FMOD_Channel_GetPosition”, referenced from: _streamPosition in ccJnlwrd.o “_FMOD_System_Create”, referenced from: _startPlayback in ccJnlwrd.o “_FMOD_System_PlaySound”, referenced from: […]