Tag: xcode

如何使用Cocoa OSX SDK检查TCP端口

我想制作一个cocoa应用程序,它将检查服务器上是否打开了某些TCP端口。 如果它关闭则返回一个小红球,如果它打开则返回绿色…… 但我有点困惑,使用什么类,等等。 在此先感谢您的帮助

从C调用Swift

我已经看过许多文章解释如何从Swift调用C函数 ,但我想探索converse(如果可能的话), 从C调用Swift函数 。 我已经看到了在objC中演示Swift函数的例子,但这些并没有让我更接近我的目标。 这项任务是否得到支持?

XCode优雅的程序关闭

我正在使用xcode中的类似服务器的程序,我希望它在调试运行之间正常关闭。 基本上以下行不起作用 std::signal(SIGKILL, [](int){ printf(“got sigkill here!\n”); //shut-down code here }); 我试过捕获其他信号,但到目前为止SIGINT,SIGTERM和SIGABRT都没有用。 如果打印,xcode如何终止该程序 程序以退出代码结束:9 到控制台? 编辑显然SIGKILL无法被捕获,请参阅此维基百科条目。 与SIGTERM和SIGINT相反,此信号无法捕获或忽略,接收过程无法在接收到此信号后执行任何清理

Xcode-C编程 – 循环

我在Xcode中有一个与“while”循环相关的错误/警告。 有关如何解决它的任何建议? while ( (c=getchar() != ‘\n’) && c != EOF); 虽然循环有空体 IDE中的图片:

swprintf在xcode中使用unicode字符失败,但在visual studio中工作

在尝试转换某些现有代码以支持unicode字符时,会出现此问题。 如果我尝试将unicode字符(在本例中使用欧元符号)传递到任何* wprintf函数中,它将失败,但似乎只在xcode中。 相同的代码在visual studio中运行良好,我甚至能够让朋友在linux上使用gcc成功测试它。 这是违规代码: wchar_t _teststring[10] = L””; int _iRetVal = swprintf(_teststring, 10, L”A¥€”); wprintf(L”return: %d\n”, _iRetVal); // print values stored in string to check if anything got corrupted for (int i=0; i<wcslen(_teststring); ++i) { wprintf(L"%d: (%d)\n", i, _teststring[i]); } 在xcode中,对swprintf的调用将返回-1,而在visual studio中,它将成功并继续为3个字符(65,165,8364)中的每一个打印出正确的值。 我已经google了很长时间,很难找到解决方案,一个已出现多次的建议是使用如下调用: setlocale(LC_CTYPE, “UTF-8”); 我已尝试使用此函数的各种参数组合但没有成功,经过进一步调查,如果我尝试将语言环境设置为默认值“C”以外的任何值,则它似乎返回null。 我不知道还有什么可以尝试解决这个问题,而且它在其他编译器/平台上运行的事实让它更令人沮丧。 任何帮助将非常感激! 编辑:我想补充一点,当swprintf调用失败时,它会设置一个错误代码(92),定义为: #define EILSEQ 92 /* […]

C函数始终向目标C返回零

我有一个Objective C项目,它包含一个带有一些辅助函数的C文件。 我试图从C文件中返回float s时遇到严重且非常恼人的问题。 C档案: float returnFloat() { return 10.0; } 同时在Objective C实例方法中: float x; x = returnFloat(); x始终为0.000000。 我有什么想法我做错了吗? 编辑 好的,我已经意识到我在Objective C文件中有一堆“隐式声明”警告,与我在C文件中使用的函数有关。 使用返回int的函数的赋值工作正常。 如果赋值是从返回float的函数中进行的,则调试器会说“变量被编译器优化掉”。 是不是我可能没有使用“正确”的方法在Objective C项目中包含一个包含辅助函数的C文件? 我(愚蠢地?)让Xcode自动链接它。 即使如此,为什么只有在函数返回float时才会出现此问题?

使用popen()在命令行中打开程序?

是否可以使用其他程序打开程序? 例如:我想在C中创建一个命令行应用程序,它将提示用户输入程序名称(比如说Microsoft Word.app),该程序将启动。 我会做这样的事情: #include #include int main (int argc, const char * argv[]) { char programName[1000]; printf(“Type in the name of the program you would like to open: “); scanf(“%s”, programName); popen(programName); } 但是,popen()要求我另一个char。 我如何使用popen()打开程序? 编辑:以下代码有效! #include #include int main (int argc, const char * argv[]) { char programName[1000]; char app[100] = “.app”; char […]

链接c项目时,体系结构x86_64的未定义符号

我尝试将picoc项目编译成xcode。 没有外部库,只是我在命令行工具C项目中导入的.c和.h文件。 所有.c文件编译都没有问题,但是当XCode链接时,我收到以下消息: Undefined symbols for architecture x86_64: “_BasicIOInit”, referenced from: _PicocInitialise in platform.o “_CStdOut”, referenced from: _PrintSourceTextErrorLine in platform.o _PlatformVPrintf in platform.o “_MathFunctions”, referenced from: _IncludeInit in include.o “_MathSetupFunc”, referenced from: _IncludeInit in include.o “_PicocPlatformScanFile”, referenced from: _IncludeFile in include.o … 给出错误的命令如下: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -v -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ MacOSX10.8.sdk -L / Users / laurent […]

在Xcode中,如何使用您拥有源的外部库进行调试?

我在Xcode中为OS X开发了一个大型的C / C ++ / Objective-C项目。 该项目链接到预先构建的Qt5库。 这一切都非常好用,直到崩溃并且我得到一个带有Qt函数的堆栈跟踪。 如果我点击其中一个Qt函数的堆栈框架,Xcode / lldb显示汇编而不是源代码 – 我使用Qt作为外部库,所以我的项目中没有任何Qt源代码。 我怎样才能解决这个问题? 我已经尝试将Qt5源添加到项目而不将其添加到我的可执行目标,但是Xcode / lldb仍然没有“看到”源或者发现我添加到项目中的源文件是相同的源文件在Qt调试符号中引用。 如何告诉Xcode / lldb在哪里找到我正在使用的外部库的源代码? 编辑: 只是为了在这里添加更多细节,当我在Xcode / lldb控制台中输入’target modules lookup -t QMenuBar’时,这就是我所看到的: Best match found in /Users/ted/Documents/Projects/XXX/_build_osx/Output/Debug/XXX.app/Contents/MacOS/XXX: id = {0x7100042d49}, name = “QMenuBar”, byte-size = 48, decl = qmenubar.h:57, clang_type = “class QMenuBar : public QWidget { static […]

xcode,带有arduino的c ++串口

我正在制作一个非常简单的c ++程序,它通过一个串口向arduino发送一个角度,然后arduino将这个角度应用到伺服电机上。 我知道Unix看到串口设备就像一个文件,实际上这是c ++代码: #include #include using namespace std; int main() { int angole; FILE * arduino; do { arduino = fopen(“/dev/tty.usbmodem3a21″,”w”); cout<>angole; fprintf(arduino,”%d”,angole); sleep(1); }while(angole>=0 && angole<=179); } 这是arduino的: #include Servo servo; const int pinServo = 2; int angle; void setup() { Serial.begin(9600); servo.attach(pinServo); servo.write(0); } void loop() { if(Serial.available()>0) { angle = Serial.read(); […]