我正在使用库 Function ConnectToTCPServer。当主机不可达时,该函数超时。在这种情况下,应用程序崩溃并出现以下错误:“NON-FATAL RUN-TIME ERROR: "MyClient.c", line 93, col 15, thread id 0x000017F0: Library function error (return value == -11 [0xfffffff5]) . 超时错误"
Errorcode 11 是一个超时错误,所以这可能在我的应用程序中经常发生 - 但是应用程序崩溃 - 我想捕捉这个错误而不是让我的应用程序崩溃。
如何在 Ansi C90 中捕获此运行时错误?
编辑:这是当前使用的代码片段:
ConnectToTCPServer(&srvHandle, srvPort, srvName, HPMClientCb, answer, timeout);
和
int HPMClientCb(UINT handle, int xType, int errCode, void *transData){
printf("This was never printed\n");
return errCode;
}
回调函数永远不会被调用。我的服务器没有运行,所以 ConnectToTCPServer 将超时。我会怀疑回调被调用 - 但它从未被调用。
编辑2:实际上没有调用回调函数,ConnectToTCPServer的返回值包含相同的错误信息。我认为ConnectToTCPServer抛出此错误可能是一个错误。我只需要抓住它并将其放入 C90 中即可。有任何想法吗?
编辑 3:我测试了回调函数,在我的服务器在线的罕见情况下,实际调用了回调函数 - 这无济于事,因为发生错误时不会调用回调。