FIX: LNK4056 Warning Generated with Comma in #pragma Comment

ID: Q184088


The information in this article applies to:
  • Microsoft Visual C++, 32-bit Editions, versions 2.0, 2.1, 2.2, 4.0, 4.0a, 4.1, 4.2, 5.0


SYMPTOMS

The comment pragma allows the user to insert strings into an executable. If a comma is used in the comment string, as follows:


   #pragma comment(exestr,"This is a , comma") 
then the linker generates the following warning:
warning LNK4056: extra arguments ignored for option
"/comment:This is a , comma"
where the "extra arguments" refers to the text after the "," in the comment string.


CAUSE

The comment pragma is translated by the compiler into the /comment linker option. The linker interprets the comma as a separator between arguments, and ignores the "second" argument.


RESOLUTION

Add a space or some other character in place of the comma, and then edit the executable and replace the space with a comma. To do this, open the executable file in Developer Studio using the binary format. Select File/Open, choose Binary under the "Open As" combo box, and open the .exe file. Locate the string, and edit the executable directly to add a comma where needed.


STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article.

This bug was corrected in Visual C++ 6.0.


MORE INFORMATION

Sample Code


#pragma comment(exestr,"This is a , comma")

void main(void)
{} 


REFERENCES

Visual C++ version 5.0 Online Documentation, #pragma comment: mk:@ivt:vccore/F39/D3B/S4C36D.HTM

Additional query words:

Keywords : kbLangC kbVC kbVC200bug kbVC210bug kbVC220bug kbVC400bug kbVC410bug kbVC500bug kbVC600fix LinkIss
Version : winnt:2.0,2.1,2.2,4.0,4.0a,4.1,4.2,5.0
Platform : winnt
Issue type : kbbug


Last Reviewed: July 14, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.