RE: Announcing start of WTL10
"'Jeff Boeker' Jeff-b1ql1gapkFVWk0Htik3J/[email protected] [wtl]" <[email protected]> Wed, 27 Sep 2017 00:13:26 +0800
| Newsgroups | gmane.comp.windows.wtl |
|---|---|
| Message-ID | <[email protected]> |
------=_NextPart_000_01E1_01D33725.722B14E0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Yes, basically my use case is when I need to read strings from Windows cont= rols. Typically the pattern, at the Windows API level, is to pass in null s= tring and get the character count returned, then pass in a string allocated= to correct number of characters. Sometime it is more complicated. =20 In WTL often the choices are BSTR or CString or character array, like CList= ViewCtrl::GetItemText(). For our company, we=E2=80=99ve standardized on wst= ring so in many cases I just added a wstring version of the function. I lik= e to think of WTL as a windows specific addition to the standard template l= ibrary so being able to use std::string/wstring seamlessly feels natural to= me but I agree if there=E2=80=99s not many people interested there=E2=80= =99s no point to add a 4th string type to WTL. =20 From: [email protected] [mailto:[email protected]]=20 Sent: Friday, September 22, 2017 3:58 PM To: [email protected] Subject: Re: [wtl] Announcing start of WTL10 =20 =20=20 I am not sure if this dependency on the STL should be dragged into the WTL. Since std:string already provides c_str() that you can always use to feed a= n STL String where WTL:CString is required. Yes its one more allocation but= I don't see that this would have an noticeable impact on the performance. =20 Jeff what is the use case you have? Do you want CWindow::getText to return = a std:wstring to save one conversion/allocation? =20 On Fri, Sep 22, 2017 at 2:27 AM, Nenad Stefanovi=C4=87 [email protected] = <mailto:[email protected]> [wtl] <[email protected] <mailto:wtl@yahoog= roups.com> > wrote: =20 Hi Jeff, =20 That can be done, depending on how many people are requesting it. Since WTL= already uses CString, you can simply copy values from CString to std:strin= g in your code. =20 I hope that others can reply to this thread if they think that direct use o= f std:string/wstring is needed. =20 Cheers, Nenad =20 =20 On Wed, Sep 20, 2017 at 5:40 PM, 'Jeff Boeker' Jeff-b1ql1gapkFVWk0Htik3J/[email protected] [wtl] <wtl= @yahoogroups.com <mailto:[email protected]> > wrote: =20=20 Hello Nenad, Is there any interest in supporting std:string/wstring in WTL? I=E2=80=99ve= already added it internally to several places since my company doesn=E2=80= =99t use CString. Jeff Begin forwarded message: From: "Nenad Stefanovi=C4=87 [email protected] <mailto:[email protected]= m> [wtl]" <[email protected] <mailto:[email protected]> > Date: September 20, 2017 at 9:11:04 AM GMT+8 To: "[email protected] <mailto:[email protected]> " <wtl-hHKSG33Tihh9OS/[email protected]= m <mailto:[email protected]> > Subject: [wtl] Announcing start of WTL10 Reply-To: [email protected] <mailto:[email protected]>=20 Hello everybody, WTL10 is the new version of WTL. The major changes compared to WTL 9.1 are = removal of certain things, which enabled us to streamline the code to move = it forward: - Visual Studio support: now requires VS2005 or newer (supports VS2017) - Removed support for Visual Studio Express (use VS Community) - Removed support for WinCE projects - Removed support for _ATL_MIN_CRT - Removed WTL implementation of CPoint/CSize/CRect/CString (use ATL) - New logo :-) The code is in 'Git' repository (previous one was in 'Code'). This is just = an initial commit, and we will now work on adding features and fixing bugs. Cheers, Nenad [Non-text portions of this message have been removed] =20 =20 =20 ------=_NextPart_000_01E1_01D33725.722B14E0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <head> <style type=3D"text/css"> <!-- /* start of attachment style */ .ygrp-photo-title{ clear: both; font-size: smaller; height: 15px; overflow: hidden; text-align: center; width: 75px; } div.ygrp-photo{ background-position: center; background-repeat: no-repeat; background-color: white; border: 1px solid black; height: 62px; width: 62px; } div.photo-title=20 a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited { text-decoration: none;=20 } div.attach-table div.attach-row { clear: both; } div.attach-table div.attach-row div { float: left; /* margin: 2px;*/ } p { clear: both; padding: 15px 0 3px 0; overflow: hidden; } div.ygrp-file { width: 30px; valign: middle; } div.attach-table div.attach-row div div a { text-decoration: none; } div.attach-table div.attach-row div div span { font-weight: normal; } div.ygrp-file-title { font-weight: bold; } /* end of attachment style */ --> </style> </head> <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:= //www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content= =3D"text/html; charset=3Dutf-8"><meta name=3DGenerator content=3D"Microsoft= Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#defaul= t#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style><![endif]--><style><!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:DengXian; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4;} @font-face {font-family:"\@DengXian"; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri",sans-serif;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:purple; text-decoration:underline;} code {mso-style-priority:99; font-family:"Courier New";} pre {mso-style-priority:99; mso-style-link:"HTML Preformatted Char"; margin:0in; margin-bottom:.0001pt; font-size:10.0pt; font-family:"Courier New";} tt {mso-style-priority:99; font-family:"Courier New";} p.msonormal0, li.msonormal0, div.msonormal0 {mso-style-name:msonormal; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; font-size:11.0pt; font-family:"Calibri",sans-serif;} span.HTMLPreformattedChar {mso-style-name:"HTML Preformatted Char"; mso-style-priority:99; mso-style-link:"HTML Preformatted"; font-family:"Consolas",serif;} p.attach, li.attach, div.attach {mso-style-name:attach; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; font-size:9.0pt; font-family:"Arial",sans-serif;} p.bold, li.bold, div.bold {mso-style-name:bold; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; font-size:10.0pt; font-family:"Arial",sans-serif; font-weight:bold;} p.green, li.green, div.green {mso-style-name:green; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; font-size:11.0pt; font-family:"Calibri",sans-serif; color:#628C2A;} p.replbq, li.replbq, div.replbq {mso-style-name:replbq; margin:3.0pt; font-size:11.0pt; font-family:"Calibri",sans-serif;} p.ad, li.ad, div.ad {mso-style-name:ad; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; font-size:11.0pt; font-family:"Calibri",sans-serif;} p.underline, li.underline, div.underline {mso-style-name:underline; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; font-size:11.0pt; font-family:"Calibri",sans-serif;} span.yshortcuts {mso-style-name:yshortcuts;} p.ad1, li.ad1, div.ad1 {mso-style-name:ad1; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; font-size:11.0pt; font-family:"Calibri",sans-serif;} p.ad2, li.ad2, div.ad2 {mso-style-name:ad2; mso-margin-top-alt:auto; margin-right:0in; margin-bottom:7.5pt; margin-left:0in; font-size:11.0pt; font-family:"Calibri",sans-serif;} p.underline1, li.underline1, div.underline1 {mso-style-name:underline1; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; font-size:11.0pt; font-family:"Calibri",sans-serif; text-decoration:underline;} span.yshortcuts1 {mso-style-name:yshortcuts1; font-family:"Verdana",sans-serif; font-weight:bold;} span.yshortcuts2 {mso-style-name:yshortcuts2; font-family:"Verdana",sans-serif; font-weight:normal;} span.EmailStyle36 {mso-style-type:personal-reply; font-family:"Calibri",sans-serif; color:windowtext;} .MsoChpDefault {mso-style-type:export-only; font-size:10.0pt;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1426458911; mso-list-template-ids:1239442412;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:=EF=82=B7; mso-level-tab-stop:.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l0:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:1.0in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l0:level3 {mso-level-number-format:bullet; mso-level-text:=EF=82=A7; mso-level-tab-stop:1.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level4 {mso-level-number-format:bullet; mso-level-text:=EF=82=A7; mso-level-tab-stop:2.0in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level5 {mso-level-number-format:bullet; mso-level-text:=EF=82=A7; mso-level-tab-stop:2.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level6 {mso-level-number-format:bullet; mso-level-text:=EF=82=A7; mso-level-tab-stop:3.0in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level7 {mso-level-number-format:bullet; mso-level-text:=EF=82=A7; mso-level-tab-stop:3.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level8 {mso-level-number-format:bullet; mso-level-text:=EF=82=A7; mso-level-tab-stop:4.0in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l0:level9 {mso-level-number-format:bullet; mso-level-text:=EF=82=A7; mso-level-tab-stop:4.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Wingdings;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--></head><body bgcolor=3Dwhite lang=3DEN-US= link=3Dblue vlink=3Dpurple> <!-- |**|begin egp html banner|**| --> <br><br> <!-- |**|end egp html banner|**| --> <div class=3DWordSection1><p class=3DMsoNormal>Yes, basically my use case i= s when I need to read strings from Windows controls. Typically the pattern,= at the Windows API level, is to pass in null string and get the character = count returned, then pass in a string allocated to correct number of charac= ters. Sometime it is more complicated.<o:p></o:p></p><p class=3DMsoNormal><= o:p> </o:p></p><p class=3DMsoNormal>In WTL often the choices are BSTR = or CString or character array, like CListViewCtrl::GetItemText(). For our c= ompany, we=E2=80=99ve standardized on wstring so in many cases I just added= a wstring version of the function. I like to think of WTL as a windows spe= cific addition to the standard template library so being able to use std::s= tring/wstring seamlessly feels natural to me but I agree if there=E2=80=99s= not many people interested there=E2=80=99s no point to add a 4<sup>th</sup= > string type to WTL.<o:p></o:p></p><p class=3DMsoNormal><o:p> </o:p><= /p><div><div style=3D'border:none;border-top:solid #E1E1E1 1.0pt;padding:3.= 0pt 0in 0in 0in'><p class=3DMsoNormal><b>From:</b> [email protected] [mai= lto:[email protected]] <br><b>Sent:</b> Friday, September 22, 2017 3:58 P= M<br><b>To:</b> [email protected]<br><b>Subject:</b> Re: [wtl] Announcing= start of WTL10<o:p></o:p></p></div></div><p class=3DMsoNormal><o:p> <= /o:p></p><p class=3DMsoNormal> <o:p></o:p></p><div id=3Dygrp-mlmsg><d= iv id=3Dygrp-msg><div id=3Dygrp-text><div><p class=3DMsoNormal>I am not sur= e if this dependency on the STL should be dragged into the WTL.<o:p></o:p><= /p><div><p class=3DMsoNormal>Since std:string already provides c_str() that= you can always use to feed an STL String where WTL:CString is required. Ye= s its one more allocation but I don't see that this would have an noticeabl= e impact on the performance.<o:p></o:p></p></div><div><p class=3DMsoNormal>= <o:p> </o:p></p></div><div><p class=3DMsoNormal>Jeff what is the use c= ase you have? Do you want CWindow::getText to return a std:wstring to save = one conversion/allocation?<o:p></o:p></p></div></div><div><p class=3DMsoNor= mal><o:p> </o:p></p><div><p class=3DMsoNormal>On Fri, Sep 22, 2017 at = 2:27 AM, Nenad Stefanovi=C4=87 <a href=3D"mailto:[email protected]">nenad= [email protected]</a> [wtl] <<a href=3D"mailto:[email protected]" target= =3D"_blank">[email protected]</a>> wrote:<o:p></o:p></p><blockquote st= yle=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 0in;= margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=3DMsoNormal style=3D'ma= rgin-bottom:12.0pt'><o:p> </o:p></p><div><p class=3DMsoNormal>Hi Jeff,= <o:p></o:p></p><div><p class=3DMsoNormal><o:p> </o:p></p></div><div><p= class=3DMsoNormal>That can be done, depending on how many people are reque= sting it. Since WTL already uses CString, you can simply copy values from C= String to std:string in your code.<o:p></o:p></p></div><div><p class=3DMsoN= ormal><o:p> </o:p></p></div><div><p class=3DMsoNormal>I hope that othe= rs can reply to this thread if they think that direct use of std:string/wst= ring is needed.<o:p></o:p></p></div><div><p class=3DMsoNormal><o:p> </= o:p></p></div><div><p class=3DMsoNormal>Cheers,<o:p></o:p></p></div><div><p= class=3DMsoNormal>Nenad<o:p></o:p></p></div><div><p class=3DMsoNormal><o:p= > </o:p></p></div></div><div><p class=3DMsoNormal><o:p> </o:p></p= ><div><p class=3DMsoNormal>On Wed, Sep 20, 2017 at 5:40 PM, 'Jeff Boeker' <= a href=3D"mailto:Jeff-b1ql1gapkFVWk0Htik3J/[email protected]" target=3D"_blank">Jeff-b1ql1gapkFVWk0Htik3J/[email protected]</a>= [wtl] <<a href=3D"mailto:[email protected]" target=3D"_blank">wtl@yah= oogroups.com</a>> wrote:<o:p></o:p></p><blockquote style=3D'border:none;= border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 0in;margin-top:5.0pt;ma= rgin-bottom:5.0pt'><div><p class=3DMsoNormal style=3D'background:white'>&nb= sp; <o:p></o:p></p><div id=3D"m_2873775927347566465m_-6255852137115714642yg= rp-mlmsg"><div id=3D"m_2873775927347566465m_-6255852137115714642ygrp-msg"><= div id=3D"m_2873775927347566465m_-6255852137115714642ygrp-text"><p style=3D= 'background:white'>Hello Nenad,<br><br>Is there any interest in supporting = std:string/wstring in WTL? I=E2=80=99ve already added it internally to seve= ral places since my company doesn=E2=80=99t use CString.<br><br>Jeff<br><br= >Begin forwarded message:<br><br>From: "Nenad Stefanovi=C4=87 <a href= =3D"mailto:[email protected]" target=3D"_blank">[email protected]</a> [= wtl]" <<a href=3D"mailto:[email protected]" target=3D"_blank">wtl= @yahoogroups.com</a>><br>Date: September 20, 2017 at 9:11:04 AM GMT+8<br= >To: "<a href=3D"mailto:[email protected]" target=3D"_blank">wtl@yah= oogroups.com</a>" <<a href=3D"mailto:[email protected]" target=3D= "_blank">[email protected]</a>><br>Subject: [wtl] Announcing start of = WTL10<br>Reply-To: <a href=3D"mailto:[email protected]" target=3D"_blank"= >[email protected]</a><o:p></o:p></p><div><div><p class=3DMsoNormal style= =3D'margin-bottom:12.0pt;background:white'><br><br>Hello everybody,<br><br>= WTL10 is the new version of WTL. The major changes compared to WTL 9.1 are = removal of certain things, which enabled us to streamline the code to move = it forward:<br><br>- Visual Studio support: now requires VS2005 or newer (s= upports VS2017)<br><br>- Removed support for Visual Studio Express (use VS = Community)<br><br>- Removed support for WinCE projects<br><br>- Removed sup= port for _ATL_MIN_CRT<br><br>- Removed WTL implementation of CPoint/CSize/C= Rect/CString (use ATL)<br><br>- New logo :-)<br><br>The code is in 'Git' re= pository (previous one was in 'Code'). This is just an initial commit, and = we will now work on adding features and fixing bugs.<br><br>Cheers,<br><br>= Nenad<o:p></o:p></p></div></div><p class=3DMsoNormal style=3D'margin-bottom= :12.0pt;background:white'>[Non-text portions of this message have been remo= ved]<o:p></o:p></p></div></div></div></div></blockquote></div><p class=3DMs= oNormal><o:p> </o:p></p></div><p class=3DMsoNormal style=3D'margin-bot= tom:12.0pt'><o:p> </o:p></p></div></blockquote></div><p class=3DMsoNor= mal><o:p> </o:p></p></div></div><div><p class=3DMsoNormal><span style= =3D'color:white'><o:p></o:p></span></p></div></div> <!-- |**|begin egp html banner|**| --> <br> <br> <!-- |**|end egp html banner|**| --> <div width=3D"1" style=3D"color: white; clear: both;"/>__._,_.___</div> =20=20=20=20=20=20 =20=20 =20=20=20=20 <div id=3D"fromDMARC" style=3D"clear:both; margin-top: 10px;"> <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; backgroun= d-color:#E3E3E3;"> Posted by: "Jeff Boeker" <Jeff-b1ql1gapkFVWk0Htik3J/[email protected]> = <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; background-colo= r:#E3E3E3;"> </div> <!-- Start Recommendations --> <!-- End Recommendations --> <!-- |**|begin egp html banner|**| --> <img src=3D"http://geo.yahoo.com/serv?s=3D97476590/grpId=3D488621/grpspId= =3D1705006764/msgId=3D16748/stime=3D1506442489" width=3D"1" height=3D"1"> <= br> <!-- |**|end egp html banner|**| --> =20=20=20=20 <!-- |**|begin egp html banner|**| --> <br> =20=20=20 =20=20=20=20=20 =20 <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-vital" style=3D"background-color: #f2f2f2; font-fam= ily: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;"> <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-tr= ansform: uppercase; "><a href=3D"https://groups.yahoo.com/neo/groups/wtl/in= fo;_ylc=3DX3oDMTJkNGc0a3ZlBF9TAzk3MzU5NzE0BGdycElkAzQ4ODYyMQRncnBzcElkAzE3M= DUwMDY3NjQEc2VjA3Z0bARzbGsDdmdocARzdGltZQMxNTA2NDQyNDg4" style=3D"text-deco= ration: none;">Visit Your Group</a></span> <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: in= line;"> </ul> </div> <div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p= x; padding: 0 2px 0 0; clear: both;"> <a href=3D"https://groups.yahoo.com/neo;_ylc=3DX3oDMTJjOWJpYm83BF9TAzk3ND= c2NTkwBGdycElkAzQ4ODYyMQRncnBzcElkAzE3MDUwMDY3NjQEc2VjA2Z0cgRzbGsDZ2ZwBHN0a= W1lAzE1MDY0NDI0ODk-" style=3D"float: left;"><img src=3D"http://l.yimg.com/r= u/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height=3D"15"= width=3D"137" alt=3D"Yahoo! Groups" style=3D"border: 0;"/></a> <div style=3D"color: #747575; float: right;"> • <a href=3D"https://i= nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio= n: none;">Privacy</a> • <a href=3D"mailto:wtl-unsubscribe@yahoogroups.= com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Unsubscribe</a>= • <a href=3D"https://info.yahoo.com/legal/us/yahoo/utos/terms/" style= =3D"text-decoration: none;">Terms of Use</a> </div> </div> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> =20=20=20 <br> <!-- |**|end egp html banner|**| --> <div style=3D"color: white; clear: both;"/>__,_._,___</div> </body></html> ------=_NextPart_000_01E1_01D33725.722B14E0--