Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 5d02e44

Browse files
authored
Fix warning in LPTSTRTestNative (#10973)
* Fix warning in LPTSTRTestNative and add support for wcsncmp in xplatform.h
1 parent 08c80c5 commit 5d02e44

File tree

2 files changed

+26
-24
lines changed

2 files changed

+26
-24
lines changed

tests/src/Interop/StringMarshalling/LPTSTR/LPTSTRTestNative.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -100,24 +100,24 @@ extern "C" DLL_EXPORT LPWSTR MarshalPointer_Out(/*[out]*/ LPWSTR *s)
100100
return ReturnString();
101101
}
102102

103-
typedef LPTSTR (__stdcall * Test_Del_MarshalStrB_InOut)(/*[in,out]*/ LPTSTR s);
104-
extern "C" DLL_EXPORT BOOL NATIVEAPI ReverseP_MarshalStrB_InOut(Test_Del_MarshalStrB_InOut d, /*[in]*/ LPCTSTR s)
103+
typedef LPWSTR (__stdcall * Test_Del_MarshalStrB_InOut)(/*[in,out]*/ LPWSTR s);
104+
extern "C" DLL_EXPORT BOOL NATIVEAPI ReverseP_MarshalStrB_InOut(Test_Del_MarshalStrB_InOut d, /*[in]*/ LPCWSTR s)
105105
{
106-
LPTSTR ret = d((LPTSTR)s);
107-
LPTSTR expectedret =(LPTSTR)W("Native");
108-
LPTSTR expectedstr = (LPTSTR)W("m");
106+
LPWSTR ret = d((LPWSTR)s);
107+
LPWSTR expectedret =(LPWSTR)W("Native");
108+
LPWSTR expectedstr = (LPWSTR)W("m");
109109

110-
size_t lenret = _tcslen(ret);
111-
size_t lenexpectedret = _tcslen(expectedret);
112-
if((lenret != lenexpectedret)||(_tcsncmp(ret,expectedret,lenret)!=0))
110+
size_t lenret = wcslen(ret);
111+
size_t lenexpectedret = wcslen(expectedret);
112+
if((lenret != lenexpectedret)||(wcsncmp(ret,expectedret,lenret)!=0))
113113
{
114114
printf("Error in ReverseP_MarshalStrB_InOut, Returned value didn't match\n");
115115
return FALSE;
116116
}
117117

118-
size_t lenstr = _tcslen(s);
119-
size_t lenexpectedstr = _tcslen(expectedstr);
120-
if((lenstr != lenexpectedstr)||(_tcsncmp(s,expectedstr,lenstr)!=0))
118+
size_t lenstr = wcslen(s);
119+
size_t lenexpectedstr = wcslen(expectedstr);
120+
if((lenstr != lenexpectedstr)||(wcsncmp(s,expectedstr,lenstr)!=0))
121121
{
122122
printf("Error in ReverseP_MarshalStrB_InOut, Changed value didn't reflect on native side.\n");
123123
return FALSE;
@@ -126,25 +126,25 @@ extern "C" DLL_EXPORT BOOL NATIVEAPI ReverseP_MarshalStrB_InOut(Test_Del_Marshal
126126
return TRUE;
127127
}
128128

129-
typedef LPTSTR (__cdecl * Test_Del_MarshalStrB_Out)(/*[out]*/ LPTSTR * s);
129+
typedef LPWSTR (__cdecl * Test_Del_MarshalStrB_Out)(/*[out]*/ LPWSTR * s);
130130
extern "C" DLL_EXPORT BOOL NATIVEAPI ReverseP_MarshalStrB_Out(Test_Del_MarshalStrB_Out d)
131131
{
132-
LPTSTR s;
133-
LPTSTR ret = d((LPTSTR*)&s);
134-
LPTSTR expectedret = (LPTSTR)W("Native");
135-
LPTSTR expectedstr = (LPTSTR)W("Managed");
136-
137-
size_t lenret = _tcslen(ret);
138-
size_t lenexpectedret = _tcslen(expectedret);
139-
if((lenret != lenexpectedret)||(_tcsncmp(ret,expectedret,lenret)!=0))
132+
LPWSTR s;
133+
LPWSTR ret = d((LPWSTR*)&s);
134+
LPWSTR expectedret = (LPWSTR)W("Native");
135+
LPWSTR expectedstr = (LPWSTR)W("Managed");
136+
137+
size_t lenret = wcslen(ret);
138+
size_t lenexpectedret = wcslen(expectedret);
139+
if((lenret != lenexpectedret)||(wcsncmp(ret,expectedret,lenret)!=0))
140140
{
141141
printf("Error in ReverseP_MarshalStrB_Out, Returned value didn't match\n");
142142
return FALSE;
143143
}
144144

145-
size_t lenstr = _tcslen(s);
146-
size_t lenexpectedstr = _tcslen(expectedstr);
147-
if((lenstr != lenexpectedstr)||(_tcsncmp(s,expectedstr,lenstr)!=0))
145+
size_t lenstr = wcslen(s);
146+
size_t lenexpectedstr = wcslen(expectedstr);
147+
if((lenstr != lenexpectedstr)||(wcsncmp(s,expectedstr,lenstr)!=0))
148148
{
149149
printf("Error in ReverseP_MarshalStrB_Out, Changed value didn't reflect on native side.\n");
150150
return FALSE;

tests/src/Interop/common/xplatform.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,9 @@ int wcsncpy_s(LPWSTR strDestination, size_t size1, LPCWSTR strSource)
194194

195195
}
196196

197-
int wmemcmp(LPWSTR str1, LPWSTR str2,size_t len)
197+
#define wcsncmp wmemcmp
198+
199+
int wmemcmp(LPCWSTR str1, LPCWSTR str2,size_t len)
198200
{
199201
// < 0 str1 less than str2
200202
// 0 str1 identical to str2

0 commit comments

Comments
 (0)