Skip to content

Commit b9f5c1f

Browse files
authored
Merge pull request #264 from Microsoft/mb-ide
Updates to topics on project files
2 parents ee7e4f3 + 867643d commit b9f5c1f

22 files changed

+511
-49
lines changed

docs/atl-mfc-shared/exporting-string-classes-using-cstringt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ In the past, MFC developers have derived from `CString` to specialize their own
3939

4040
- With the new `CStringT` template class, you can customize `CString` behavior using template parameters that specify character traits, similar to the templates in the C++ Standard Library.
4141

42-
- When you export your own string class from a DLL using `CStringT`, the compiler also automatically exports the `CString` base class. Since `CString` is itself a template class, it may be instantiated by the compiler when used, unless the compiler is aware that `CString` is imported from a DLL. If you have migrated projects from Visual C++ 6.0 to Visual C++.NET, you might have seen linker symbol errors for a multiply-defined `CString` because of the collision of the `CString` imported from a DLL and the locally instantiated version. The proper way to do this is described below. For more information on this issue, see the Knowledge Base article, "Linking Errors When you Import CString-derived Classes" (Q309801) on the MSDN Library CD-ROM or at [http://support.microsoft.com/default.aspx](http://support.microsoft.com/default.aspx).
42+
- When you export your own string class from a DLL using `CStringT`, the compiler also automatically exports the `CString` base class. Since `CString` is itself a template class, it may be instantiated by the compiler when used, unless the compiler is aware that `CString` is imported from a DLL. If you have migrated projects from Visual C++ 6.0 to Visual C++.NET, you might have seen linker symbol errors for a multiply-defined `CString` because of the collision of the `CString` imported from a DLL and the locally instantiated version. The proper way to do this is described below. For more information on this issue, see the Knowledge Base article, "Linking Errors When you Import CString-derived Classes" (Q309801) at [http://support.microsoft.com/default.aspx](http://support.microsoft.com/default.aspx).
4343

4444
The following scenario will cause the linker to produce symbol errors for multiply defined classes. Assume that you are exporting a `CString`-derived class (`CMyString`) from an MFC extension DLL:
4545

docs/atl-mfc-shared/reference/cstringt-class.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public CSimpleStringT<BaseType,
159159
`CString`, `CStringA`, and `CStringW` are exported from the MFC DLL (MFC90.DLL), never from user DLLs. This is done to prevent `CStringT` from being multiply defined.
160160

161161
> [!NOTE]
162-
> If you encountered linker errors when exporting a `CString`-derived class from an MFC extension DLL in Visual C++ .NET 2002 and have applied the workaround as described in the Knowledge Base article, "Linking Errors When You Import CString-Derived Classes" (Q309801), you should remove the workaround code, because this has been fixed in Visual C++ .NET 2003. You can find Knowledge Base articles on the MSDN Library CD-ROM or at [http://support.microsoft.com/support](http://support.microsoft.com/support).
162+
> If you encountered linker errors when exporting a `CString`-derived class from an MFC extension DLL in Visual C++ .NET 2002 and have applied the workaround as described in the Knowledge Base article, "Linking Errors When You Import CString-Derived Classes" (Q309801), you should remove the workaround code, because this has been fixed in Visual C++ .NET 2003. You can find Knowledge Base articles at [http://support.microsoft.com/support](http://support.microsoft.com/support).
163163
164164
The following string types are available within MFC-based applications:
165165

docs/ide/TOC.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
### [Help Files (HTML Help)](help-files-html-help.md)
2222
### [Help Files (WinHelp)](help-files-winhelp.md)
2323
### [Hint Files](hint-files.md)
24+
### [Property Page XML Files](property-page-xml-files.md)
25+
### [.vcxproj and .props file structure](vcxproj-file-structure.md)
2426
## [Creating Desktop Projects By Using Application Wizards](creating-desktop-projects-by-using-application-wizards.md)
2527
### [Wizard Support for Other Languages](wizard-support-for-other-languages.md)
2628
### [Creating a Custom Wizard](creating-a-custom-wizard.md)

docs/ide/creating-and-managing-visual-cpp-projects.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ translation.priority.mt:
4141
- "tr-tr"
4242
---
4343
# Creating and Managing Visual C++ Projects
44+
Visual Studio 2017 offers three ways to organize your C++ source code and related files to produce an executable (such as an .exe, .dll or .lib):
45+
- As an MSBuild-based project
46+
- As a CMake project. For more information, see [CMake support in Visual Studio](https://blogs.msdn.microsoft.com/vcblog/2017/04/17/cmake-support-in-visual-studio-whats-new-in-2017-15-2-update/).
47+
- As a loose collection of files in a folder with an optional JSON configuration file. For more information, see [Bring your C++ code to Visual Studio](https://blogs.msdn.microsoft.com/vcblog/2017/04/14/bring-your-cpp-code-to-visual-studio/).
48+
49+
> [!NOTE]
50+
> This section describes MSBuild projects.
51+
4452
You can create Visual C++ projects by choosing **File &#124; New &#124; Project**, ensuring that Visual C++ is selected in the left pane, and then choosing from the list of project templates in the middle pane. When you click on a template, in many cases a wizard will appear that enables you to set various project properties before the project is created. You can view and modify those properties later by using the project's property pages (**Project &#124; Properties**).
4553

4654
You can also create new projects by:

0 commit comments

Comments
 (0)