Solved

Problems running nsqlprep with Visual Studio 2005.

Posted on 2008-06-25
3
594 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

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Suggested Solutions

Let's review the features of new SQL Server 2012 (Denali CTP3). It listed as below: PERCENT_RANK(): PERCENT_RANK() function will returns the percentage value of rank of the values among its group. PERCENT_RANK() function value always in be…
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.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function
Via a live example, show how to set up a backup for SQL Server using a Maintenance Plan and how to schedule the job into SQL Server Agent.

758 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now