Click here to Skip to main content
13,298,481 members (41,593 online)
Click here to Skip to main content
Add your own
alternative version


12 bookmarked
Posted 5 Oct 2004

Convertion from managed String* data type to LPCTSTR

, 6 Feb 2005
Rate this:
Please Sign up or sign in to vote.
a class to convert from VC++.NET String* data type to leagcy LPCTSTR


As a VC++ programmer. and if you are using VC.NET you may try to use your old leagcy code under the .NET framwork.

When I tried to use some of my old C++ code, I encountered the problem of data types conversion in .NET framework. I thought that Microsoft will handle the data types issue in .NET in a better manner.

Any way, one of the problems I had, is to use a function that receives a parameter of LPCTSTR data type. In .NET you can use the managed String* data type but the compiler will complain as it can't convert managed String* data type to LPCTSTR data type.

The problem has been handled through the StringToHGlobalAnsi method of Marshal class provided in the .NET framework, but it's not that easy.You have to make some static casts.

I thought there might some other people who encounter the same problem, so I decided to make a small class that has just two methods to convert from managed String* data type to unmanaged LPCTSTR data type. any way I have put the code in a class, but you can use it in your manner.

The two methods are:

  1. LPCTSTR AnsiStrings::ConvertStringToLPCTSTR(String* sString)<BR><BR>you only need to pass your String* variable to it and receives a LPCTSTR variable.
  2. void AnsiStrings::ReleaseLPCTSTR(LPCTSTR lpsString)<BR><BR>this method will release the memory holded for our leagacy LPCTSTR varaible.

It's a small class, but I hope the begginers in VC.NET can make best use of it.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Web Developer
Egypt Egypt
No Biography provided

You may also be interested in...


Comments and Discussions

Generalmany casts... Pin
HumanOsc6-Oct-04 4:48
memberHumanOsc6-Oct-04 4:48 
QuestionWhy not use CString? Pin
George L. Jackson5-Oct-04 12:44
memberGeorge L. Jackson5-Oct-04 12:44 
QuestionWhy a class? Pin
Nemanja Trifunovic5-Oct-04 3:09
memberNemanja Trifunovic5-Oct-04 3:09 
AnswerRe: Why a class? Pin
toxcct5-Oct-04 3:30
membertoxcct5-Oct-04 3:30 
maybe a namespace would have been better...!?

TOXCCT >>> GEII power

AnswerRe: Why a class? Pin
Philippe Mori5-Oct-04 4:55
memberPhilippe Mori5-Oct-04 4:55 
GeneralRe: Why a class? Pin
Nemanja Trifunovic5-Oct-04 5:48
memberNemanja Trifunovic5-Oct-04 5:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.171207.1 | Last Updated 7 Feb 2005
Article Copyright 2004 by mshoukry_alkhwarazmi
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid