From 851cebeea0a4df4c2723f94fdd1ae554578626d3 Mon Sep 17 00:00:00 2001 From: Chris Teubert Date: Mon, 1 Dec 2014 15:36:37 -0800 Subject: [PATCH 1/2] Testing improvements- C/C++ --- C/src/xplaneConnect.c | 10 +- .../UserInterfaceState.xcuserstate | Bin 33778 -> 38905 bytes .../xcdebugger/Expressions.xcexplist | 14 ++ .../xcdebugger/Breakpoints_v2.xcbkptlist | 176 ++++++++++++++++++ TestScripts/C Tests/main.c | 122 +++++++++--- TestScripts/CPP Tests/main.cpp | 133 ++++++++----- .../UserInterfaceState.xcuserstate | Bin 57187 -> 57725 bytes 7 files changed, 375 insertions(+), 80 deletions(-) create mode 100644 TestScripts/C Tests.xcodeproj/project.xcworkspace/xcuserdata/cteubert.xcuserdatad/xcdebugger/Expressions.xcexplist diff --git a/C/src/xplaneConnect.c b/C/src/xplaneConnect.c index 2ba2572..03a8361 100644 --- a/C/src/xplaneConnect.c +++ b/C/src/xplaneConnect.c @@ -571,9 +571,8 @@ short parseRequest(const char my_message[], float *resultArray[], short arraySiz int i, j; short count = my_message[5]; short place = 6; - float *tmp; - float data[10]; - tmp = malloc(sizeof(float)); + float tmp; + float data[25]; for (i=0; iJFcQVY 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 Z&y1eAJqxWRZ49&iWmZ}L4*vEm{(p1iFTel* diff --git a/TestScripts/C Tests.xcodeproj/project.xcworkspace/xcuserdata/cteubert.xcuserdatad/xcdebugger/Expressions.xcexplist b/TestScripts/C Tests.xcodeproj/project.xcworkspace/xcuserdata/cteubert.xcuserdatad/xcdebugger/Expressions.xcexplist new file mode 100644 index 0000000..344fac9 --- /dev/null +++ b/TestScripts/C Tests.xcodeproj/project.xcworkspace/xcuserdata/cteubert.xcuserdatad/xcdebugger/Expressions.xcexplist @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/TestScripts/C Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/TestScripts/C Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index fe2b454..f1fc592 100644 --- a/TestScripts/C Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/TestScripts/C Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -2,4 +2,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TestScripts/C Tests/main.c b/TestScripts/C Tests/main.c index b382e54..937fc68 100644 --- a/TestScripts/C Tests/main.c +++ b/TestScripts/C Tests/main.c @@ -44,6 +44,7 @@ short test2() // closeUDP test printf("closeUDP - "); struct xpcSocket sendPort = openUDP( 49063, "127.0.0.1", 49009 ); closeUDP(sendPort); + sendPort = openUDP( 49063, "127.0.0.1", 49009 ); return 0; } @@ -240,41 +241,47 @@ short test7() // sendCTRL test float *recDATA[100]; short DREFSizes[100]; struct xpcSocket sendPort, recvPort; + short result; // Setup for (i = 0; i < 100; i++) { recDATA[i] = (float *) malloc(40*sizeof(float)); memset(DREFArray[i],0,100); } - sendPort = openUDP( 49067, "127.0.0.1", 49009 ); + sendPort = openUDP( 49066, "127.0.0.1", 49009 ); recvPort = openUDP( 49008, "127.0.0.1", 49009 ); - strcpy(DREFArray[0],"sim/cockpit/switches/gear_handle_status"); - for (i=0;i<1;i++) { + strcpy(DREFArray[0],"sim/cockpit2/controls/yoke_pitch_ratio"); + strcpy(DREFArray[1],"sim/cockpit2/controls/yoke_roll_ratio"); + strcpy(DREFArray[2],"sim/cockpit2/controls/yoke_heading_ratio"); + strcpy(DREFArray[3],"sim/flightmodel/engine/ENGN_thro"); + strcpy(DREFArray[4],"sim/cockpit/switches/gear_handle_status"); + strcpy(DREFArray[5],"sim/flightmodel/controls/flaprqsts"); + for (i=0;i<5;i++) { DREFSizes[i] = (int) strlen(DREFArray[i]); } CTRL[3] = 0.8; // Throttle // Execute sendCTRL(sendPort, 4, CTRL); + result = requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 6, recDATA, DREFSizes); // Test // Close closeUDP(sendPort); closeUDP(recvPort); - // Test - - // if (requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 1, recDATA, DREFSizes) < 0)// Request 1 value - // { - // return -1; - // } - // if (DREFSizes[0] != 1) - // { - // return -2; - // } - // if (*recDATA[0] != value) - // { - // return -3; - // } + // Tests + if ( result < 0 )// Request 1 value + { + return -6; + } + for (i=0;i<6-1;i++) + { + if (abs(recDATA[i][0]-CTRL[i])>1e-4) + { + return -i; + } + } + return 0; } @@ -289,16 +296,23 @@ short test8() // sendPOSI test float *recDATA[100]; short DREFSizes[100]; struct xpcSocket sendPort, recvPort; + short result; // Setup for (i = 0; i < 100; i++) { recDATA[i] = (float *) malloc(40*sizeof(float)); memset(DREFArray[i],0,100); } - sendPort = openUDP( 49067, "127.0.0.1", 49009 ); + sendPort = openUDP( 49063, "127.0.0.1", 49009 ); recvPort = openUDP( 49008, "127.0.0.1", 49009 ); - strcpy(DREFArray[0],"sim/cockpit/switches/gear_handle_status"); - for (i=0;i<1;i++) { + strcpy(DREFArray[0],"sim/flightmodel/position/latitude"); + strcpy(DREFArray[1],"sim/flightmodel/position/longitude"); + strcpy(DREFArray[2],"sim/flightmodel/position/y_agl"); + strcpy(DREFArray[3],"sim/flightmodel/position/phi"); + strcpy(DREFArray[4],"sim/flightmodel/position/theta"); + strcpy(DREFArray[5],"sim/flightmodel/position/psi"); + strcpy(DREFArray[6],"sim/cockpit/switches/gear_handle_status"); + for (i=0;i<7;i++) { DREFSizes[i] = (int) strlen(DREFArray[i]); } POSI[0] = 37.524; // Lat @@ -311,12 +325,29 @@ short test8() // sendPOSI test // Execution sendPOSI( sendPort, 0, 7, POSI ); + result = requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 7, recDATA, DREFSizes); // Test // Close closeUDP(sendPort); closeUDP(recvPort); - // Test + // Tests + if ( result < 0 )// Request 1 value + { + return -7; + } + for (i=0;i<7-1;i++) + { + if (i==2) + { + continue; + } + if (abs(recDATA[i][0]-POSI[i])>1e-4) + { + return -i; + } + } + return 0; } @@ -326,20 +357,65 @@ short test9() // pauseSim test printf("pauseSim - "); // Initialize + int i; // Iterator + char DREFArray[100][100]; + float *recDATA[100]; + short DREFSizes[100],RECSizes[100]; struct xpcSocket sendPort, recvPort; + short result; // Setup - sendPort = openUDP( 49067, "127.0.0.1", 49009 ); + for (i = 0; i < 100; i++) { + recDATA[i] = (float *) malloc(40*sizeof(float)); + memset(DREFArray[i],0,100); + } + + // Setup + sendPort = openUDP( 49064, "127.0.0.1", 49009 ); recvPort = openUDP( 49008, "127.0.0.1", 49009 ); + strcpy(DREFArray[0],"sim/operation/override/override_planepath"); + for (i=0;i<1;i++) { + DREFSizes[i] = (int) strlen(DREFArray[i]); + } // Execute pauseSim(sendPort, 1); + result = requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 1, recDATA, RECSizes); // Test // Close closeUDP(sendPort); closeUDP(recvPort); // Test + if (result < 0) { + return -1; + } + if (recDATA[0][0] != 1) + { + return -2; + } + + // Reopen + sendPort = openUDP( 49064, "127.0.0.1", 49009 ); + recvPort = openUDP( 49008, "127.0.0.1", 49009 ); + + // Execute 2 + pauseSim(sendPort, 0); + result = requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 1, recDATA, RECSizes); // Test + + // Close 2 + closeUDP(sendPort); + closeUDP(recvPort); + + // Test 2 + if (result < 0) + { + return -3; + } + if (recDATA[0][0] != 0) + { + return -4; + } return 0; } @@ -389,7 +465,7 @@ short test10() // setConn test int main(int argc, const char * argv[]) { - printf("XPC Tests-cpp "); + printf("XPC Tests-c "); #ifdef _WIN32 printf("(Windows)\n"); diff --git a/TestScripts/CPP Tests/main.cpp b/TestScripts/CPP Tests/main.cpp index 7c756f3..f01e249 100644 --- a/TestScripts/CPP Tests/main.cpp +++ b/TestScripts/CPP Tests/main.cpp @@ -48,6 +48,7 @@ void test2() // closeUDP test std::cout << "closeUDP - "; struct xpcSocket sendPort = openUDP( 49063, "127.0.0.1", 49009 ); closeUDP(sendPort); + sendPort = openUDP( 49063, "127.0.0.1", 49009 ); } void test3() // send/read Test @@ -239,82 +240,112 @@ void test7() // sendCTRL test float *recDATA[100]; short DREFSizes[100]; struct xpcSocket sendPort, recvPort; + short result; // Setup for (i = 0; i < 100; i++) { recDATA[i] = (float *) malloc(40*sizeof(float)); memset(DREFArray[i],0,100); } - sendPort = openUDP( 49067, "127.0.0.1", 49009 ); + sendPort = openUDP( 49066, "127.0.0.1", 49009 ); recvPort = openUDP( 49008, "127.0.0.1", 49009 ); - strcpy(DREFArray[0],"sim/cockpit/switches/gear_handle_status"); - for (i=0;i<1;i++) { - DREFSizes[i] = (int) strlen(DREFArray[i]); - } - CTRL[3] = 0.8; // Throttle + strcpy(DREFArray[0],"sim/cockpit2/controls/yoke_pitch_ratio"); + strcpy(DREFArray[1],"sim/cockpit2/controls/yoke_roll_ratio"); + strcpy(DREFArray[2],"sim/cockpit2/controls/yoke_heading_ratio"); + strcpy(DREFArray[3],"sim/flightmodel/engine/ENGN_thro"); + strcpy(DREFArray[4],"sim/cockpit/switches/gear_handle_status"); + strcpy(DREFArray[5],"sim/flightmodel/controls/flaprqsts"); + for (i=0;i<5;i++) { + DREFSizes[i] = (int) strlen(DREFArray[i]); + } + CTRL[3] = 0.8; // Throttle // Execute - sendCTRL(sendPort, 4, CTRL); + sendCTRL(sendPort, 4, CTRL); + result = requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 1, recDATA, DREFSizes); // Test // Close - closeUDP(sendPort); - closeUDP(recvPort); + closeUDP(sendPort); + closeUDP(recvPort); - // Test - -// if (requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 1, recDATA, DREFSizes) < 0)// Request 1 value -// { -// throw 1; -// } -// if (DREFSizes[0] != 1) -// { -// throw 2; -// } -// if (*recDATA[0] != value) -// { -// throw 3; -// } + // Tests + if ( result < 0 )// Request 1 value + { + throw -6; + } + for (i=0;i<6-1;i++) + { + if (abs(recDATA[i][0]-CTRL[i])>1e-4) + { + throw -i; + } + } } void test8() // sendPOSI test { std::cout << "sendPOSI - "; - // Initialization - int i; // Iterator - char DREFArray[100][100]; - float POSI[8] = {0.0}; - float *recDATA[100]; - short DREFSizes[100]; - struct xpcSocket sendPort, recvPort; + // Initialize + int i; // Iterator + char DREFArray[100][100]; + float *recDATA[100]; + short DREFSizes[100],RECSizes[100]; + struct xpcSocket sendPort, recvPort; + short result; // Setup - for (i = 0; i < 100; i++) { - recDATA[i] = (float *) malloc(40*sizeof(float)); - memset(DREFArray[i],0,100); - } - sendPort = openUDP( 49067, "127.0.0.1", 49009 ); - recvPort = openUDP( 49008, "127.0.0.1", 49009 ); - strcpy(DREFArray[0],"sim/cockpit/switches/gear_handle_status"); - for (i=0;i<1;i++) { - DREFSizes[i] = (int) strlen(DREFArray[i]); - } - POSI[0] = 37.524; // Lat - POSI[1] = -122.06899; // Lon - POSI[2] = 2500; // Alt - POSI[3] = 0; // Pitch - POSI[4] = 0; // Roll - POSI[5] = 0; // Heading - POSI[6] = 1; // Gear + for (i = 0; i < 100; i++) { + recDATA[i] = (float *) malloc(40*sizeof(float)); + memset(DREFArray[i],0,100); + } - // Execution - sendPOSI( sendPort, 0, 7, POSI ); + // Setup + sendPort = openUDP( 49064, "127.0.0.1", 49009 ); + recvPort = openUDP( 49008, "127.0.0.1", 49009 ); + strcpy(DREFArray[0],"sim/operation/override/override_planepath"); + for (i=0;i<1;i++) { + DREFSizes[i] = (int) strlen(DREFArray[i]); + } + + // Execute + pauseSim(sendPort, 1); + result = requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 1, recDATA, RECSizes); // Test // Close - closeUDP(sendPort); - closeUDP(recvPort); + closeUDP(sendPort); + closeUDP(recvPort); // Test + if (result < 0) { + throw -1; + } + if (recDATA[0][0] != 1) + { + throw -2; + } + + // Reopen + sendPort = openUDP( 49064, "127.0.0.1", 49009 ); + recvPort = openUDP( 49008, "127.0.0.1", 49009 ); + + // Execute 2 + pauseSim(sendPort, 0); + result = requestDREF(sendPort, recvPort, DREFArray, DREFSizes, 1, recDATA, RECSizes); // Test + + // Close 2 + closeUDP(sendPort); + closeUDP(recvPort); + + // Test 2 + if (result < 0) + { + throw -3; + } + if (recDATA[0][0] != 0) + { + throw -4; + } } void test9() // pauseSim test diff --git a/TestScripts/Cpp Tests.xcodeproj/project.xcworkspace/xcuserdata/cteubert.xcuserdatad/UserInterfaceState.xcuserstate b/TestScripts/Cpp Tests.xcodeproj/project.xcworkspace/xcuserdata/cteubert.xcuserdatad/UserInterfaceState.xcuserstate index 73c5526dbe0b3c66e72a3ad62c8039a6992b47ed..96f1af103907bf731fd6dc27c9339213290c9c66 100644 GIT binary patch delta 20879 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 S>epM*f3ThMzo&nm)BJzVYC^gI delta 20819 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 Gum1-j8I(l; From fce3b5a5a8b99fe6760c41d7f811513f5599405d Mon Sep 17 00:00:00 2001 From: Chris Teubert Date: Mon, 1 Dec 2014 15:42:40 -0800 Subject: [PATCH 2/2] Resolved Conflicts --- .../xcdebugger/Breakpoints_v2.xcbkptlist | 16 ++-- TestScripts/C Tests/main.c | 40 ++++----- .../xcdebugger/Breakpoints_v2.xcbkptlist | 5 -- .../xcschemes/XPC Tests.xcscheme | 86 ------------------- .../xcschemes/xcschememanagement.plist | 22 ----- .../xpcPlugin/xpcPlugin/xpcPlugin.vcxproj | 2 +- 6 files changed, 29 insertions(+), 142 deletions(-) delete mode 100644 TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist delete mode 100644 TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcschemes/XPC Tests.xcscheme delete mode 100644 TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/TestScripts/C Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/TestScripts/C Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index f1fc592..498e2db 100644 --- a/TestScripts/C Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/TestScripts/C Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -15,7 +15,7 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "368" endingLineNumber = "368" - landmarkName = "test9()" + landmarkName = "pauseTest()" landmarkType = "7"> @@ -77,7 +77,7 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "372" endingLineNumber = "372" - landmarkName = "test9()" + landmarkName = "pauseTest()" landmarkType = "7"> @@ -93,7 +93,7 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "383" endingLineNumber = "383" - landmarkName = "test9()" + landmarkName = "pauseTest()" landmarkType = "7"> @@ -125,7 +125,7 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "327" endingLineNumber = "327" - landmarkName = "test8()" + landmarkName = "sendPOSITest()" landmarkType = "7"> @@ -141,7 +141,7 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "369" endingLineNumber = "369" - landmarkName = "test9()" + landmarkName = "pauseTest()" landmarkType = "7"> @@ -157,7 +157,7 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "411" endingLineNumber = "411" - landmarkName = "test9()" + landmarkName = "pauseTest()" landmarkType = "7"> @@ -173,7 +173,7 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "412" endingLineNumber = "412" - landmarkName = "test9()" + landmarkName = "pauseTest()" landmarkType = "7"> diff --git a/TestScripts/C Tests/main.c b/TestScripts/C Tests/main.c index 937fc68..4f8eec6 100644 --- a/TestScripts/C Tests/main.c +++ b/TestScripts/C Tests/main.c @@ -32,14 +32,14 @@ void runTest(short (*f)()) } } -short test1() // openUDP Test +short openTest() // openUDP Test { printf("openUDP - "); struct xpcSocket sendPort = openUDP( 49062, "127.0.0.1", 49009 ); return 0; } -short test2() // closeUDP test +short closeTest() // closeUDP test { printf("closeUDP - "); struct xpcSocket sendPort = openUDP( 49063, "127.0.0.1", 49009 ); @@ -48,7 +48,7 @@ short test2() // closeUDP test return 0; } -short test3() // send/read Test +short sendReadTest() // send/read Test { printf("send/readUDP - "); @@ -82,7 +82,7 @@ short test3() // send/read Test return 0; } -short test4() // Request DREF Test (Required for next tests) +short requestDREFTest() // Request DREF Test (Required for next tests) { printf("requestDREF - "); @@ -126,7 +126,7 @@ short test4() // Request DREF Test (Required for next tests) return 0; } -short test5() // sendDREF test +short sendDREFTest() // sendDREF test { printf("sendDREF - "); @@ -175,7 +175,7 @@ short test5() // sendDREF test return 0; } -short test6() // sendDATA test +short sendDATATest() // sendDATA test { printf("sendData - "); @@ -230,7 +230,7 @@ short test6() // sendDATA test return 0; } -short test7() // sendCTRL test +short sendCTRLTest() // sendCTRL test { printf("sendCTRL - "); @@ -285,7 +285,7 @@ short test7() // sendCTRL test return 0; } -short test8() // sendPOSI test +short sendPOSITest() // sendPOSI test { printf("sendPOSI - "); @@ -352,7 +352,7 @@ short test8() // sendPOSI test return 0; } -short test9() // pauseSim test +short pauseTest() // pauseSim test { printf("pauseSim - "); @@ -420,7 +420,7 @@ short test9() // pauseSim test return 0; } -short test10() // setConn test +short connTest() // setConn test { printf("setConn - "); @@ -475,16 +475,16 @@ int main(int argc, const char * argv[]) printf("(Linux) \n"); #endif - runTest(test1); - runTest(test2); - runTest(test3); - runTest(test4); - runTest(test5); - runTest(test6); - runTest(test7); - runTest(test8); - runTest(test9); - runTest(test10); + runTest(openTest); + runTest(closeTest); + runTest(sendReadTest); + runTest(requestDREFTest); + runTest(sendDREFTest); + runTest(sendDATATest); + runTest(sendCTRLTest); + runTest(sendPOSITest); + runTest(pauseTest); + runTest(connTest); printf( "----------------\nTest Summary\n\tFailed: %i\n\tPassed: %i\n", testFailed, testPassed ); diff --git a/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index fe2b454..0000000 --- a/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcschemes/XPC Tests.xcscheme b/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcschemes/XPC Tests.xcscheme deleted file mode 100644 index 294af46..0000000 --- a/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcschemes/XPC Tests.xcscheme +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcschemes/xcschememanagement.plist b/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index e8d4ac3..0000000 --- a/TestScripts/Cpp Tests.xcodeproj/xcuserdata/cteubert.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - SchemeUserState - - XPC Tests.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - BE9C6BAA1A253FA100EBE08A - - primary - - - - - diff --git a/xpcPlugin/xpcPlugin/xpcPlugin/xpcPlugin.vcxproj b/xpcPlugin/xpcPlugin/xpcPlugin/xpcPlugin.vcxproj index 6f238e0..bdd8d82 100644 --- a/xpcPlugin/xpcPlugin/xpcPlugin/xpcPlugin.vcxproj +++ b/xpcPlugin/xpcPlugin/xpcPlugin/xpcPlugin.vcxproj @@ -93,7 +93,7 @@ IBM=1;XPLM200;_DEBUG;_WINDOWS;_USRDLL;XPCPLUGIN_EXPORTS;%(PreprocessorDefinitions) - ./src;\\vmware-host\Shared Folders\Documents\xplaneconnect\xpcPlugin\SDK\CHeaders\XPLM;\\vmware-host\Shared Folders\Documents\xplaneconnect\xpcPlugin;\\vmware-host\Shared Folders\Documents\xplaneconnect\C\src;%(AdditionalIncludeDirectories) + ./src;../../SDK/CHeaders/XPLM;../../;../../../C/src;%(AdditionalIncludeDirectories) OldStyle true