diff --git a/bacnet-stack/doc/README.msvc b/bacnet-stack/doc/README.msvc index 6a98e7b7..6d33f3bb 100644 --- a/bacnet-stack/doc/README.msvc +++ b/bacnet-stack/doc/README.msvc @@ -4,6 +4,30 @@ Build for Visual C++ 6.0 When building the BACnet stack using Visual C++ compiler, there are some settings that are important. +Q. Are there some global configuration options for this BACnet stack? + +A. The BACnet stack uses some preprocessor defines to configure +a number of subtle personalities. +PRINT_ENABLED=1 - enables printing to stdio +BIG_ENDIAN=0 - chooses the BACnet encoding and decoding order +BACDL_BIP=1 - chooses BACnet/IP for the datalink layer +BACDL_ETHERNET=0 - chooses BACnet Ethernet for the datalink layer +BACDL_ARCNET=0 - chooses BACnet ARCNET for the datalink layer +BACDL_MSTP=0 - chooses BACnet MS/TP for the datalink layer +USE_INADDR=1 - uses INADDR_BROADCAST for broadcast rather than CLASSx +TSM_ENABLED=1 - enables the Transaction State Machine for clients +BIP_DEBUG=1 - enables print statements for debugging +In Visual C++, add a Preprocessor Definition by: +1. Select "Project" menu +2. Select "Settings..." +3. Select the "C/C++" tab (3rd Tab) +4. Select the Category: General +5. You can see the "Preprocessor Definitions:" box +6. Type OPTION_NAME=1 or OPTION_NAME=0 in that edit box + using a comma to separate multiple options. +7. Press OK +8. Compile the entire project again... + Q. MSVC refuses to open bacnet.dsw and bacnet.dsp. A. bacnet.dsw and bacnet.dsp are text files that were retrieved @@ -47,7 +71,20 @@ its datalink layer. In Visual C++, add a Preprocessor Definition by: 3. Select the "C/C++" tab (3rd Tab) 4. Select the Category: General 5. You can see the "Preprocessor Definitions:" box -6. Type BACDL_BIP in that edit box (using a comma if necessary) +6. Type BACDL_BIP=1 in that edit box (using a comma if necessary) +7. Press OK +8. Compile the entire project again... + +Q. error LNK2001: unresolved external symbol _bacapp_print + +A. The BACnet stack uses a preprocessor define to configure +printing to stdio. In Visual C++, add a Preprocessor Definition by: +1. Select "Project" menu +2. Select "Settings..." +3. Select the "C/C++" tab (3rd Tab) +4. Select the Category: General +5. You can see the "Preprocessor Definitions:" box +6. Type PRINT_ENABLED=1 in that edit box (using a comma if necessary) 7. Press OK 8. Compile the entire project again... @@ -74,3 +111,36 @@ In Visual C++, add a Preprocessor Definition by: 6. Type MAX_TSM_TRANSACTIONS=0 in that edit box (using a comma if necessary) 7. Press OK 8. Compile the entire project again... + +Q. error LNK2001: unresolved external symbol __beginthread +A. Visual C++ needs to have the multithreaded library when compiled +with MS/TP datalink enabled (BACDL_MSTP instead of BACDL_BIP): +1. Select "Project" menu +2. Select "Settings..." +3. Select the "C/C++" tab (3rd Tab) +4. Select the Category: Code Generation +5. Select the Multithreaded from the "Use runtime library" box options + +Q. warning C4013: '_beginthreadex' undefined; assuming extern returning int +A. Visual C++ needs to have the multithreaded library when compiled +with MS/TP datalink enabled (BACDL_MSTP instead of BACDL_BIP): +1. Select "Project" menu +2. Select "Settings..." +3. Select the "C/C++" tab (3rd Tab) +4. Select the Category: Code Generation +5. Select the Multithreaded from the "Use runtime library" box options + +Q. error LNK2019: Verweis auf nicht aufgelöstes externes Symbol + "_GetAdaptersInfo@8" in Funktion "_getIpMaskForIpAddress". +A. There is the Iphlpapi.lib library missing from the VC++ project + (for the GetAdaptersInfo error) that you need to add: + http://msdn2.microsoft.com/en-us/library/aa916102.aspx + Note that Iphlpapi.lib/.h is not included with Visual C++ 6.0; + you would need to download the platform SDK to get it. +1. Select "Project" menu +2. Select "Settings..." +3. Select the "Link" tab (4th Tab) +4. You can see "Object/library modules:" edit box +5. Type Iphlpapi.lib in that edit box +6. Press OK +7. Compile the entire project again... diff --git a/bacnet-stack/ports/win32/bacnet/readme.txt b/bacnet-stack/ports/win32/bacnet/readme.txt deleted file mode 100644 index 7b31139c..00000000 --- a/bacnet-stack/ports/win32/bacnet/readme.txt +++ /dev/null @@ -1,146 +0,0 @@ -BACnet Stack - SourceForge.net -Build for Visual C++ 6.0 - -When building the BACnet stack using Visual C++ compiler, -there are some settings that are important. - -Q. Are there some global configuration options for this BACnet stack? - -A. The BACnet stack uses some preprocessor defines to configure -a number of subtle personalities. -PRINT_ENABLED=1 - enables printing to stdio -BIG_ENDIAN=0 - chooses the BACnet encoding and decoding order -BACDL_BIP=1 - chooses BACnet/IP for the datalink layer -BACDL_ETHERNET=0 - chooses BACnet Ethernet for the datalink layer -BACDL_ARCNET=0 - chooses BACnet ARCNET for the datalink layer -BACDL_MSTP=0 - chooses BACnet MS/TP for the datalink layer -USE_INADDR=1 - uses INADDR_BROADCAST for broadcast rather than CLASSx -TSM_ENABLED=1 - enables the Transaction State Machine for clients -BIP_DEBUG=1 - enables print statements for debugging -In Visual C++, add a Preprocessor Definition by: -1. Select "Project" menu -2. Select "Settings..." -3. Select the "C/C++" tab (3rd Tab) -4. Select the Category: General -5. You can see the "Preprocessor Definitions:" box -6. Type OPTION_NAME=1 or OPTION_NAME=0 in that edit box - using a comma to separate multiple options. -7. Press OK -8. Compile the entire project again... - -Q. MSVC refuses to open bacnet.dsw and bacnet.dsp. - -A. bacnet.dsw and bacnet.dsp are text files that were retrieved -from CVS on a unix client and are now in unix text file format since -they end with a "\r\n" rather than "\n". Use the unix2dos commandline -tool to convert them back to dos: -unix2dos bacnet.dsw -unix2dos bacnet.dsp - -Q. error LNK2001: unresolved external symbol _WinMain@16 - -A. The demo ports/win32/main.c was designed as a Win32 Console -Application. If you want to change it to a Windows GUI application, -you will have to add all the Windows GUI code, including WinMain(). -I recommend that you use a framework, such as WxWidgets/WxWindows, -but this has not been done yet. - -Q. error C1083: Cannot open include file: 'stdint.h': No such file - -A. The BACnet stack uses some header files, and Visual C++ needs to know -where they are: -1. Select "Project" menu -2. Select "Settings..." -3. Select the "C/C++" tab (3rd Tab) -4. Select the Category: Preprocessor -5. You can see the "Additional include directories:" box -6. Type the path to stdint.h in that edit box (using a comma if necessary) -7. Type the path to bacdcode.h in that edit box (using a comma if necessary) -In my system, the paths look like: -c:\code\bacnet-stack\,c:\code\bacnet-stack\ports\win32\, -c:\code\bacnet-stack\demo\handler\,c:\code\bacnet-stack\demo\object\ -8. Press OK -9. Compile the project again... - -Q. error C2065: 'MAX_MPDU' : undeclared identifier - -A. The BACnet stack uses a preprocessor define to configure -its datalink layer. In Visual C++, add a Preprocessor Definition by: -1. Select "Project" menu -2. Select "Settings..." -3. Select the "C/C++" tab (3rd Tab) -4. Select the Category: General -5. You can see the "Preprocessor Definitions:" box -6. Type BACDL_BIP=1 in that edit box (using a comma if necessary) -7. Press OK -8. Compile the entire project again... - -Q. error LNK2001: unresolved external symbol _bacapp_print - -A. The BACnet stack uses a preprocessor define to configure -printing to stdio. In Visual C++, add a Preprocessor Definition by: -1. Select "Project" menu -2. Select "Settings..." -3. Select the "C/C++" tab (3rd Tab) -4. Select the Category: General -5. You can see the "Preprocessor Definitions:" box -6. Type PRINT_ENABLED=1 in that edit box (using a comma if necessary) -7. Press OK -8. Compile the entire project again... - -Q. error LNK2001: unresolved external symbol __imp__closesocket@4 - -A. Visual C++ needs to have the Winsock library to be happy: -1. Select "Project" menu -2. Select "Settings..." -3. Select the "Link" tab (4th Tab) -4. You can see "Object/library modules:" edit box -5. Type Wsock32.LIB in that edit box -6. Press OK -7. Compile the entire project again... - -Q. error C2061: in file tsm.c -A. The BACnet stack uses a preprocessor define to configure -client functionality in the Transaction State Machine (TSM). -In Visual C++, add a Preprocessor Definition by: -1. Select "Project" menu -2. Select "Settings..." -3. Select the "C/C++" tab (3rd Tab) -4. Select the Category: General -5. You can see the "Preprocessor Definitions:" box -6. Type TSM_ENABLED=1 in that edit box (using a comma if necessary) -7. Press OK -8. Compile the entire project again... - -Q. error LNK2001: unresolved external symbol __beginthread -A. Visual C++ needs to have the multithreaded library when compiled -with MS/TP datalink enabled (BACDL_MSTP instead of BACDL_BIP): -1. Select "Project" menu -2. Select "Settings..." -3. Select the "C/C++" tab (3rd Tab) -4. Select the Category: Code Generation -5. Select the Multithreaded from the "Use runtime library" box options - -Q. warning C4013: '_beginthreadex' undefined; assuming extern returning int -A. Visual C++ needs to have the multithreaded library when compiled -with MS/TP datalink enabled (BACDL_MSTP instead of BACDL_BIP): -1. Select "Project" menu -2. Select "Settings..." -3. Select the "C/C++" tab (3rd Tab) -4. Select the Category: Code Generation -5. Select the Multithreaded from the "Use runtime library" box options - -Q. error LNK2019: Verweis auf nicht aufgelöstes externes Symbol - "_GetAdaptersInfo@8" in Funktion "_getIpMaskForIpAddress". -A. There is the Iphlpapi.lib library missing from the VC++ project - (for the GetAdaptersInfo error) that you need to add: - http://msdn2.microsoft.com/en-us/library/aa916102.aspx - Note that Iphlpapi.lib/.h is not included with Visual C++ 6.0; - you would need to download the platform SDK to get it. -1. Select "Project" menu -2. Select "Settings..." -3. Select the "Link" tab (4th Tab) -4. You can see "Object/library modules:" edit box -5. Type Iphlpapi.lib in that edit box -6. Press OK -7. Compile the entire project again...