About complex.h for VS 2013 for window - window

I am compiling a project on VS 2013 and I have introduced the header file #include<complex.h>.
The project involves defining "typedef double _Complex cplx"; when I compile it, I get the following error.
Identifier number "cplx" is not defined
Syntax error: missing ";" (in front of identifier cplx)

Related

Microsoft.DesktopBridge.props in a C project

I'm trying to build Nethack on Windows, and I get this error message:
"C:\NetHack-NetHack-3.6.6_Released\win\win32\vs2017\NetHack.sln" (Clean;Build target) (1) ->
"C:\NetHack-NetHack-3.6.6_Released\win\win32\vs2017\NetHackPackage.wapproj" (Clean target) (33) ->
C:\NetHack-NetHack-3.6.6_Released\win\win32\vs2017\NetHackPackage.wapproj(27,3): error MSB4019: The imported project "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\DesktopBridge\Microsoft.DesktopBridge.props" was not found. Confirm that the expression in the Import declaration "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\DesktopBridge\\Microsoft.DesktopBridge.props" is correct, and that the file
exists on disk.
I get a similar error message when trying to build with VS 2017 instead of 2022, and when trying to build the latest 3.7 sources instead of 3.6.6.
I've never heard of Microsoft.DesktopBridge.props and there is no file by that name anywhere on my machine. Google throws up some results for that name (both here and on other sites), but all of them seem to be discussing .Net projects, and Nethack, in a counterexample to nominative determinism, has nothing whatsoever to do with .Net; it's a pure C program.
What's going on with this?

Reference errors when importing CubeMx project into VisualGDB

I am having some issues when importing my fresh cubeMX project into VisualGDB. I get tonnes of errors that say:
undefined reference to 'vPortFree' (for example)
Steps taken:
Generate project files in CubeMX using "Other toolchain"
Then in VS, create project using Embedded Visual GDB and mostly following default steps. I am following this process exactly. https://www.youtube.com/watch?v=XY4I0Nq6IGc
Once the project is created I try built it, but I get these errors:
Severity Description Project File Line
Error undefined reference to `vPortFree' stm32nucleof429zi_freertos_tcpip C:\Repos\stm32nucleof429zi_freertos_tcpip.git\stm32nucleof429zi_freertos_tcpip.git\Middlewares\Third_Party\FreeRTOS\Source\tasks.c 3920
Error undefined reference to `vPortFree' stm32nucleof429zi_freertos_tcpip C:\Repos\stm32nucleof429zi_freertos_tcpip.git\stm32nucleof429zi_freertos_tcpip.git\Middlewares\Third_Party\FreeRTOS\Source\tasks.c 3921
Error undefined reference to `vPortFree' stm32nucleof429zi_freertos_tcpip C:\Repos\stm32nucleof429zi_freertos_tcpip.git\stm32nucleof429zi_freertos_tcpip.git\Middlewares\Third_Party\FreeRTOS\Source\tasks.c 3927
Error Build failed: arm-none-eabi-g++.exe exited with code 1 stm32nucleof429zi_freertos_tcpip 1
Error ld returned 1 exit status stm32nucleof429zi_freertos_tcpip C:\Repos\stm32nucleof429zi_freertos_tcpip.git\stm32nucleof429zi_freertos_tcpip.git\collect2.exe 0
When I right click on main.c however and compile, the project compiles without fault. Its when using the build tool and debugger that these errors come up.
Ive never had this problem before when importing projects. Any help would be greatly appreciated
Thank you
After playing with configurations for some time I found the issues. The toolchain file that CubeMx created does not tell the linker to include all the files required for FreeRTOS to compile.
This issue is only relevant if you are using CMSIS_RTOS_V2 and the following steps fixed it for me:
Add CMSIS_RTOS_V2 to the project space by going to:
Add missing includes:
Go to: Project->VisualGDP Project Properties->MS build settings->Include directories and add the folder CMSIS_RTOS_V2 to the file path
To resolve the unidentified reference ‘pvPortMalloc’ error:
Within the VS in the Solution Explorer window: Click on "Show all files". This is a little icon/tab at the top of the solution explorer. Navigate to: C:\...Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang. Right click on heap_4.c and include it in the project
https://sysprogs.com/w/forums/topic/error-undefined-reference-to-pvportmalloc-and-vportfree/

gsoap : plug in stlvector

I'm writting hellow-world program using gsoap v 2.8 and trying to compile it in Visual Studio 2010. I want to use stl-vector functionality. But there are import errors in directive
#import "import/stlvector.h"
The error:
error C1083: Cannot open type library file: 'r:\work\vs2010\xmlme\xmlme\import\stlvector.h' Error while loading library r:\work\vs2010\xmlme\xmlme\xmlme.h
And consequence:
IntelliSense: cannot open source file "R:/Work/VS2010/XmlMe/XmlMe/Debug/stlvector.tlh" r:\work\vs2010\xmlme\xmlme\xmlme.h
Cannot figure out what Intellisense wants from me. I copied import folder from gsoap directory to my project and referencing it properly as I think.
my solution archive (link may expire)
UPDATE:
I've tried -s parameter for wsdl2h utility to exclude stl-dependency from xmlme.h file. And now I've similar error:
error C1083: Cannot open type library file: soap12.h: Error while loading library. xmlme\xmlme.h
... producing the same weird consequence:
IntelliSense: cannot open source file "XmlMe/Debug/soap12.tlh" \xmlme\xmlme.h
The thing is to not include XmlMe.h (file generated with wsdl2h.exe tool) in the project. It uses soapcpp2-compliant language (C-based but not C and that's why VS10 compiler generates error when including such a file).
Also you need to include .nsmap file, for e.g. in your main function definition file.

How do I make Visual Studio 2010 include Windows DDK 7.1.0 files properly?

I'm trying to build a VS 2008 project written by someone else who is currently AWOL in VS2010. I need help with the WinDDK includes, particularly with hidsdi.h.
I've installed the WinDDK and VS2010 on a clean install of Win7. In Properties -> VC++ Directories -> Include Directories, I have added C:\WinDDK\7600.16385.1\inc\api, as well as \ddk and \crt. In Properties -> VC++ Directories -> Library Directories, I have added C:\WinDDK\7600.16385.1\lib\win7\i386.
However, when I attempt to build the project, I get repeated instances of
"error C3861: 'HidD_SetOutputReport': identifier not found" and "error C3861: 'HidD_GetInputReport': identifier not found
I opened up hidsdh.h from the following code block:
extern "C"
{
#include "setupapi.h"
#include "hidsdi.h"
}
And the functions listed in the error reports are present within the header file in question. Clearly, I'm doing something wrong with the include paths. Some assistance would be greatly appreciated.
You must not be defining NTDDI_VERSION or you're not defining it correctly. As you can see in hidsdi.h, the definition of HidD_SetOutputReport is conditional on this:
#if (NTDDI_VERSION >= NTDDI_WINXP)
NTDDI_VERSION determines what versions of Windows you're going to support. The appropriate values can be found here.

error LNK2001: unresolved external symbol _CLSID_XYS

There is one idl file defined in microsoft sdk which is not available in VS2005. I am using some of the interfaces from that IDL.
Now this works fine on VS 2010 . I want to make it compile on VS2005.
I copied the header file to my project directory. But it is giving me compilation error.
When I looked into header file , the class id is defined in it as
EXTERN_C const CLSID CLSID_Xyz.
Now it is defined as extern so it means it should be declared somewhere else in code.
So my question is just including .h file is sufficient or do I need to also include _i.c file.
Any suggestions
Once you examine that _i.c file you'll see the indeed the CLSID constants are defined there. So yes, you need to incorporate that .c file into you program - either by #including it into a .c or .cpp file or just by adding it to your project so that it compiles separately and then links into the final binary.

Resources