在纯C中获取NSHomeDirectory()[已关闭]

pes8fvy9  于 2023-04-29  发布在  其他
关注(0)|答案(1)|浏览(76)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

7天前关闭
Improve this question
我正在尝试用纯C语言获取NSHomeDirectory()

#include <CoreFoundation/CFBundle.h>
#include <CoreFoundation/CoreFoundation.h>

void testFunc() {
    printf(NSHomeDirectory()); 
}
dbf7pr2w

dbf7pr2w1#

您需要将UTF8String消息发送到NSHomeDirectory()返回的NSString对象,以获得C字符串。要在纯C(已测试)中执行此操作:

#include <objc/runtime.h>
#include <objc/message.h>
void *NSHomeDirectory();
void testFunc() {
    puts(((const char *(*)(void *, SEL))objc_msgSend)(NSHomeDirectory(), sel_getUid("UTF8String")));
    // Also use puts() instead of printf() here
}

***注意:**使用-framework Cocoa编译 *

相关问题