Solved

Problems running nsqlprep with Visual Studio 2005.

Posted on 2008-06-25
3
599 Views
Last Modified: 2013-11-26
I have code which contains ESQL/C which is pre-processed by the Embedded SQL precompiler nsqlprep. This works fine when used with Visual Studio 6 but does not work when used with Visual Studio 2005.

As a simple test case I have a file called helloworld.sqc which contains the following text:

#include      <stdio.h>
int main()
{
      printf("hello world\n");
      return 0;
}

and I type

nsqlprep helloworld

from within a Visual Studio 2005 Command Prompt (Start -> All Programs -> Microsoft Visual Studio 2005 -> Visual Studio Tools), and I get

Microsoft (R) Embedded SQL for C Pre-Compiler. Version 6.50.04.
Copyright (c) Microsoft Corp 1993-1996. All rights reserved.

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

helloworld.sqc
Warning: helloworld.sqc, line 3235: syntax error.
{
Warning: helloworld.sqc, line 3238: syntax error.
(
Warning: helloworld.sqc, line 3262: syntax error.
(
Warning: helloworld.sqc, line 5: syntax error.
{


However, it runs and creates helloworld.c.

If I then type

cl helloworld.c

upon the helloworld.c which is produced by nsqlprep, I get

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

helloworld.c
D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\crtdefs.h(1717) : error C2
011: 'localeinfo_struct' : 'struct' type redefinition
        D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\crtdefs.h(1717) :
see declaration of 'localeinfo_struct'
D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\crtdefs.h(1723) : error C2
011: 'tagLC_ID' : 'struct' type redefinition
        D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\crtdefs.h(1723) :
see declaration of 'tagLC_ID'
D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\crtdefs.h(1732) : error C2
011: 'threadlocaleinfostruct' : 'struct' type redefinition
        D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\crtdefs.h(1732) :
see declaration of 'threadlocaleinfostruct'


If we repeat this exercise where we have

INCLUDE=D:\Program Files\Microsoft Visual Studio\VC98\Include;
LIB=D:\Program Files\Microsoft Visual Studio\VC98\Lib

i.e. the Visual Studio 6 include files and libraries, then everything works OK.


0
Comment
Question by:smartstream-stp
3 Comments
 
LVL 31

Accepted Solution

by:
James Murrell earned 250 total points
ID: 21886940
push/pop pragmas are like open/close braces
for each push pragma there has to be one pop pragma

from http://www.velocityreviews.com/forums/t515341-warnings-building-multi-threaded-dll.html
0

Featured Post

Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed
Via a live example, show how to setup several different housekeeping processes for a SQL Server.

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question