[FRAMEDYN]

- Fix MSVC build
- Fix some name mangling issues
- Add stub libraries to make the dll actually usable. The GCC alias library is still broken though.

svn path=/trunk/; revision=60037
This commit is contained in:
Thomas Faber 2013-09-11 18:36:27 +00:00
parent 9ec7c23c83
commit 14fc5d4748
7 changed files with 216 additions and 60 deletions

View file

@ -1,16 +1,32 @@
set_cpp(WITH_RUNTIME) set_cpp(WITH_RUNTIME WITH_EXCEPTIONS)
list(APPEND SOURCE main.c chstring.cpp)
if(NOT MSVC)
spec2def(framedyn.dll framedyn_gcc.spec ADD_IMPORTLIB)
else()
spec2def(framedyn.dll framedyn_msvc.spec ADD_IMPORTLIB)
endif()
list(APPEND SOURCE
main.c
chstring.cpp
${CMAKE_CURRENT_BINARY_DIR}/framedyn.def)
add_library(framedyn SHARED ${SOURCE}) add_library(framedyn SHARED ${SOURCE})
set_module_type(framedyn win32dll UNICODE) set_module_type(framedyn win32dll UNICODE)
add_importlibs(framedyn oleaut32 msvcrt kernel32 ntdll) add_importlibs(framedyn oleaut32 msvcrt kernel32 ntdll)
if(NOT MSVC) if(NOT MSVC)
# FIXME: http://www.cmake.org/Bug/view.php?id=12998 # FIXME: http://www.cmake.org/Bug/view.php?id=12998
#add_target_compile_flags(framedyn "-fexceptions -Wno-deprecated-declarations") #add_target_compile_flags(framedyn "-Wno-deprecated-declarations")
set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-fexceptions -Wno-deprecated-declarations") set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-error=deprecated-declarations")
spec2def(framedyn.dll framedyn_gcc.spec ADD_IMPORTLIB)
list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/framedyn.def)
endif() endif()
add_cd_file(TARGET framedyn DESTINATION reactos/system32/wbem FOR all) add_cd_file(TARGET framedyn DESTINATION reactos/system32/wbem FOR all)
if(MSVC)
add_asm_files(framedynex_asm alias_msvc.s)
else()
add_asm_files(framedynex_asm alias_gcc.s)
endif()
add_library(framedynex ${framedynex_asm})

View file

@ -0,0 +1,92 @@
#include <asm.inc>
.code64
.align 4
MACRO(DEFINE_ALIAS, alias, alias2, origstring)
PUBLIC alias
.weakref alias2, origstring
alias:
jmp alias2
ENDM
#define DEFINE_ALIAS(alias, orig) DEFINE_ALIAS alias, __wrap_ ## alias, #orig
DEFINE_ALIAS(__ZN8CHString16AllocBeforeWriteEi, ?AllocBeforeWrite@CHString@@IAEXH@Z)
DEFINE_ALIAS(__ZN8CHString11AllocBufferEi, ?AllocBuffer@CHString@@IAEXH@Z)
DEFINE_ALIAS(__ZNK8CHString9AllocCopyERS_iii, ?AllocCopy@CHString@@IBEXAAV1@HHH@Z)
DEFINE_ALIAS(__ZNK8CHString14AllocSysStringEv, ?AllocSysString@CHString@@QBEPAGXZ)
DEFINE_ALIAS(__ZN8CHString10AssignCopyEiPKw, ?AssignCopy@CHString@@IAEXHPBG@Z)
DEFINE_ALIAS(__ZN8CHStringC1ERKS_, ??0CHString@@QAE@ABV0@@Z)
DEFINE_ALIAS(__ZN8CHStringC1EPKc, ??0CHString@@QAE@PBD@Z)
DEFINE_ALIAS(__ZN8CHStringC1EPKh, ??0CHString@@QAE@PBE@Z)
DEFINE_ALIAS(__ZN8CHStringC1EPKw, ??0CHString@@QAE@PBG@Z)
DEFINE_ALIAS(__ZN8CHStringC1EPKwi, ??0CHString@@QAE@PBGH@Z)
DEFINE_ALIAS(__ZN8CHStringC1Ewi, ??0CHString@@QAE@GH@Z)
DEFINE_ALIAS(__ZN8CHStringC1Ev, ??0CHString@@QAE@XZ)
DEFINE_ALIAS(__ZNK8CHString7CollateEPKw, ?Collate@CHString@@QBEHPBG@Z)
DEFINE_ALIAS(__ZNK8CHString7CompareEPKw, ?Compare@CHString@@QBEHPBG@Z)
DEFINE_ALIAS(__ZNK8CHString13CompareNoCaseEPKw, ?CompareNoCase@CHString@@QBEHPBG@Z)
DEFINE_ALIAS(__ZN8CHString10ConcatCopyEiPKwiS1_, ?ConcatCopy@CHString@@IAEXHPBGH0@Z)
DEFINE_ALIAS(__ZN8CHString13ConcatInPlaceEiPKw, ?ConcatInPlace@CHString@@IAEXHPBG@Z)
DEFINE_ALIAS(__ZN8CHString15CopyBeforeWriteEv, ?CopyBeforeWrite@CHString@@IAEXXZ)
DEFINE_ALIAS(__ZN8CHString5EmptyEv, ?Empty@CHString@@QAEXXZ)
DEFINE_ALIAS(__ZNK8CHString4FindEPKw, ?Find@CHString@@QBEHPBG@Z)
DEFINE_ALIAS(__ZNK8CHString4FindEw, ?Find@CHString@@QBEHG@Z)
DEFINE_ALIAS(__ZNK8CHString9FindOneOfEPKw, ?FindOneOf@CHString@@QBEHPBG@Z)
DEFINE_ALIAS(__ZN8CHString6FormatEjz, ?Format@CHString@@QAAXIZZ)
DEFINE_ALIAS(__ZN8CHString6FormatEPKwz, ?Format@CHString@@QAAXPBGZZ)
DEFINE_ALIAS(__ZN8CHString14FormatMessageWEjz, ?FormatMessageW@CHString@@QAAXIZZ)
DEFINE_ALIAS(__ZN8CHString14FormatMessageWEPKwz, ?FormatMessageW@CHString@@QAAXPBGZZ)
DEFINE_ALIAS(__ZN8CHString7FormatVEPKwPc, ?FormatV@CHString@@QAEXPBGPAD@Z)
DEFINE_ALIAS(__ZN8CHString9FreeExtraEv, ?FreeExtra@CHString@@QAEXXZ)
DEFINE_ALIAS(__ZNK8CHString14GetAllocLengthEv, ?GetAllocLength@CHString@@QBEHXZ)
DEFINE_ALIAS(__ZNK8CHString5GetAtEi, ?GetAt@CHString@@QBEGH@Z)
DEFINE_ALIAS(__ZN8CHString9GetBufferEi, ?GetBuffer@CHString@@QAEPAGH@Z)
DEFINE_ALIAS(__ZN8CHString18GetBufferSetLengthEi, ?GetBufferSetLength@CHString@@QAEPAGH@Z)
DEFINE_ALIAS(__ZNK8CHString7GetDataEv, ?GetData@CHString@@IBEPAUCHStringData@@XZ)
DEFINE_ALIAS(__ZNK8CHString9GetLengthEv, ?GetLength@CHString@@QBEHXZ)
DEFINE_ALIAS(__ZN8CHString4InitEv, ?Init@CHString@@IAEXXZ)
DEFINE_ALIAS(__ZNK8CHString7IsEmptyEv, ?IsEmpty@CHString@@QBEHXZ)
DEFINE_ALIAS(__ZNK8CHString4LeftEi, ?Left@CHString@@QBE?AV1@H@Z)
DEFINE_ALIAS(__ZN8CHString11LoadStringWEj, ?LoadStringW@CHString@@QAEHI@Z)
DEFINE_ALIAS(__ZN8CHString11LoadStringWEjPwj, ?LoadStringW@CHString@@IAEHIPAGI@Z)
DEFINE_ALIAS(__ZN8CHString10LockBufferEv, ?LockBuffer@CHString@@QAEPAGXZ)
DEFINE_ALIAS(__ZN8CHString9MakeLowerEv, ?MakeLower@CHString@@QAEXXZ)
DEFINE_ALIAS(__ZN8CHString11MakeReverseEv, ?MakeReverse@CHString@@QAEXXZ)
DEFINE_ALIAS(__ZN8CHString9MakeUpperEv, ?MakeUpper@CHString@@QAEXXZ)
DEFINE_ALIAS(__ZNK8CHString3MidEi, ?Mid@CHString@@QBE?AV1@H@Z)
DEFINE_ALIAS(__ZNK8CHString3MidEii, ?Mid@CHString@@QBE?AV1@HH@Z)
DEFINE_ALIAS(__ZN8CHString7ReleaseEP12CHStringData@4, ?Release@CHString@@KGXPAUCHStringData@@@Z)
DEFINE_ALIAS(__ZN8CHString7ReleaseEv, ?Release@CHString@@IAEXXZ)
DEFINE_ALIAS(__ZN8CHString13ReleaseBufferEi, ?ReleaseBuffer@CHString@@QAEXH@Z)
DEFINE_ALIAS(__ZNK8CHString11ReverseFindEw, ?ReverseFind@CHString@@QBEHG@Z)
DEFINE_ALIAS(__ZNK8CHString5RightEi, ?Right@CHString@@QBE?AV1@H@Z)
DEFINE_ALIAS(__ZN8CHString10SafeStrlenEPKw, ?SafeStrlen@CHString@@KGHPBG@Z)
DEFINE_ALIAS(__ZN8CHString5SetAtEiw, ?SetAt@CHString@@QAEXHG@Z)
DEFINE_ALIAS(__ZNK8CHString13SpanExcludingEPKw, ?SpanExcluding@CHString@@QBE?AV1@PBG@Z)
DEFINE_ALIAS(__ZNK8CHString13SpanIncludingEPKw, ?SpanIncluding@CHString@@QBE?AV1@PBG@Z)
DEFINE_ALIAS(__ZN8CHString8TrimLeftEv, ?TrimLeft@CHString@@QAEXXZ)
DEFINE_ALIAS(__ZN8CHString9TrimRightEv, ?TrimRight@CHString@@QAEXXZ)
DEFINE_ALIAS(__ZN8CHString12UnlockBufferEv, ?UnlockBuffer@CHString@@QAEXXZ)
DEFINE_ALIAS(__ZNK8CHStringcvPKwEv, ??BCHString@@QBEPBGXZ)
DEFINE_ALIAS(__ZN8CHStringpLERKS_, ??YCHString@@QAEABV0@ABV0@@Z)
DEFINE_ALIAS(__ZN8CHStringpLEc, ??YCHString@@QAEABV0@D@Z)
DEFINE_ALIAS(__ZN8CHStringpLEPKw, ??YCHString@@QAEABV0@PBG@Z)
DEFINE_ALIAS(__ZN8CHStringpLEw, ??YCHString@@QAEABV0@G@Z)
DEFINE_ALIAS(__ZN8CHStringaSEPS_, ??4CHString@@QAEABV0@PAV0@@Z)
DEFINE_ALIAS(__ZN8CHStringaSERKS_, ??4CHString@@QAEABV0@ABV0@@Z)
DEFINE_ALIAS(__ZN8CHStringaSEPKc, ??4CHString@@QAEABV0@PBD@Z)
DEFINE_ALIAS(__ZN8CHStringaSEc, ??4CHString@@QAEABV0@D@Z)
DEFINE_ALIAS(__ZN8CHStringaSEPKh, ??4CHString@@QAEABV0@PBE@Z)
DEFINE_ALIAS(__ZN8CHStringaSEPKw, ??4CHString@@QAEABV0@PBG@Z)
DEFINE_ALIAS(__ZN8CHStringaSEw, ??4CHString@@QAEABV0@G@Z)
DEFINE_ALIAS(__ZNK8CHStringixEi, ??ACHString@@QBEGH@Z)
DEFINE_ALIAS(__ZN8CHStringD1Ev, ??1CHString@@QAE@XZ)
DEFINE_ALIAS(__ZplwRK8CHString, ??H@YG?AVCHString@@GABV0@@Z)
DEFINE_ALIAS(__ZplRK8CHStringw, ??H@YG?AVCHString@@ABV0@G@Z)
DEFINE_ALIAS(__ZplRK8CHStringPKw, ??H@YG?AVCHString@@ABV0@PBG@Z)
DEFINE_ALIAS(__ZplPKwRK8CHString, ??H@YG?AVCHString@@PBGABV0@@Z)
DEFINE_ALIAS(__ZplRK8CHStringS1_, ??H@YG?AVCHString@@ABV0@0@Z)
END

View file

@ -0,0 +1,48 @@
#include <asm.inc>
.code64
.align 4
MACRO(DEFINE_ALIAS, alias, orig)
EXTERN &orig:ABS
ALIAS <&alias> = <&orig>
ENDM
DEFINE_ALIAS ?AllocSysString@CHString@@QBEPA_WXZ, ?AllocSysString@CHString@@QBEPAGXZ
DEFINE_ALIAS ?AssignCopy@CHString@@IAEXHPB_W@Z, ?AssignCopy@CHString@@IAEXHPBG@Z
DEFINE_ALIAS ??0CHString@@QAE@PB_W@Z, ??0CHString@@QAE@PBG@Z
DEFINE_ALIAS ??0CHString@@QAE@PB_WH@Z, ??0CHString@@QAE@PBGH@Z
DEFINE_ALIAS ??0CHString@@QAE@_WH@Z, ??0CHString@@QAE@GH@Z
DEFINE_ALIAS ?Collate@CHString@@QBEHPB_W@Z, ?Collate@CHString@@QBEHPBG@Z
DEFINE_ALIAS ?Compare@CHString@@QBEHPB_W@Z, ?Compare@CHString@@QBEHPBG@Z
DEFINE_ALIAS ?CompareNoCase@CHString@@QBEHPB_W@Z, ?CompareNoCase@CHString@@QBEHPBG@Z
DEFINE_ALIAS ?ConcatCopy@CHString@@IAEXHPB_WH0@Z, ?ConcatCopy@CHString@@IAEXHPBGH0@Z
DEFINE_ALIAS ?ConcatInPlace@CHString@@IAEXHPB_W@Z, ?ConcatInPlace@CHString@@IAEXHPBG@Z
DEFINE_ALIAS ?Find@CHString@@QBEHPB_W@Z, ?Find@CHString@@QBEHPBG@Z
DEFINE_ALIAS ?Find@CHString@@QBEH_W@Z, ?Find@CHString@@QBEHG@Z
DEFINE_ALIAS ?FindOneOf@CHString@@QBEHPB_W@Z, ?FindOneOf@CHString@@QBEHPBG@Z
DEFINE_ALIAS ?Format@CHString@@QAAXPB_WZZ, ?Format@CHString@@QAAXPBGZZ
DEFINE_ALIAS ?FormatMessageW@CHString@@QAAXPB_WZZ, ?FormatMessageW@CHString@@QAAXPBGZZ
DEFINE_ALIAS ?FormatV@CHString@@QAEXPB_WPAD@Z, ?FormatV@CHString@@QAEXPBGPAD@Z
DEFINE_ALIAS ?GetAt@CHString@@QBE_WH@Z, ?GetAt@CHString@@QBEGH@Z
DEFINE_ALIAS ?GetBuffer@CHString@@QAEPA_WH@Z, ?GetBuffer@CHString@@QAEPAGH@Z
DEFINE_ALIAS ?GetBufferSetLength@CHString@@QAEPA_WH@Z, ?GetBufferSetLength@CHString@@QAEPAGH@Z
DEFINE_ALIAS ?LoadStringW@CHString@@IAEHIPA_WI@Z, ?LoadStringW@CHString@@IAEHIPAGI@Z
DEFINE_ALIAS ?LockBuffer@CHString@@QAEPA_WXZ, ?LockBuffer@CHString@@QAEPAGXZ
DEFINE_ALIAS ?ReverseFind@CHString@@QBEH_W@Z, ?ReverseFind@CHString@@QBEHG@Z
DEFINE_ALIAS ?SafeStrlen@CHString@@KGHPB_W@Z, ?SafeStrlen@CHString@@KGHPBG@Z
DEFINE_ALIAS ?SetAt@CHString@@QAEXH_W@Z, ?SetAt@CHString@@QAEXHG@Z
DEFINE_ALIAS ?SpanExcluding@CHString@@QBE?AV1@PB_W@Z, ?SpanExcluding@CHString@@QBE?AV1@PBG@Z
DEFINE_ALIAS ?SpanIncluding@CHString@@QBE?AV1@PB_W@Z, ?SpanIncluding@CHString@@QBE?AV1@PBG@Z
DEFINE_ALIAS ??BCHString@@QBEPB_WXZ, ??BCHString@@QBEPBGXZ
DEFINE_ALIAS ??YCHString@@QAEABV0@PB_W@Z, ??YCHString@@QAEABV0@PBG@Z
DEFINE_ALIAS ??YCHString@@QAEABV0@_W@Z, ??YCHString@@QAEABV0@G@Z
DEFINE_ALIAS ??4CHString@@QAEABV0@PB_W@Z, ??4CHString@@QAEABV0@PBG@Z
DEFINE_ALIAS ??4CHString@@QAEABV0@_W@Z, ??4CHString@@QAEABV0@G@Z
DEFINE_ALIAS ??ACHString@@QBE_WH@Z, ??ACHString@@QBEGH@Z
DEFINE_ALIAS ??H@YG?AVCHString@@_WABV0@@Z, ??H@YG?AVCHString@@GABV0@@Z
DEFINE_ALIAS ??H@YG?AVCHString@@ABV0@_W@Z, ??H@YG?AVCHString@@ABV0@G@Z
DEFINE_ALIAS ??H@YG?AVCHString@@ABV0@PB_W@Z, ??H@YG?AVCHString@@ABV0@PBG@Z
DEFINE_ALIAS ??H@YG?AVCHString@@PB_WABV0@@Z, ??H@YG?AVCHString@@PBGABV0@@Z
END

View file

@ -940,7 +940,7 @@ void CHString::Release()
/* /*
* @implemented * @implemented
*/ */
void CHString::Release(CHStringData* pData) void WINAPI CHString::Release(CHStringData* pData)
{ {
// If empty string, ignore // If empty string, ignore
if (pData == &afxNullData) if (pData == &afxNullData)

View file

@ -3,13 +3,13 @@
@ thiscall ?AllocCopy@CHString@@IBEXAAV1@HHH@Z(ptr long long long) _ZNK8CHString9AllocCopyERS_iii @ thiscall ?AllocCopy@CHString@@IBEXAAV1@HHH@Z(ptr long long long) _ZNK8CHString9AllocCopyERS_iii
@ thiscall ?AllocSysString@CHString@@QBEPAGXZ() _ZNK8CHString14AllocSysStringEv @ thiscall ?AllocSysString@CHString@@QBEPAGXZ() _ZNK8CHString14AllocSysStringEv
@ thiscall ?AssignCopy@CHString@@IAEXHPBG@Z(long wstr) _ZN8CHString10AssignCopyEiPKw @ thiscall ?AssignCopy@CHString@@IAEXHPBG@Z(long wstr) _ZN8CHString10AssignCopyEiPKw
@ thiscall ??0CHString@@QAE@ABV0@@Z(ptr) _ZN8CHStringC2ERKS_ @ thiscall ??0CHString@@QAE@ABV0@@Z(ptr) _ZN8CHStringC1ERKS_
@ thiscall ??0CHString@@QAE@PBD@Z(str) _ZN8CHStringC2EPKc @ thiscall ??0CHString@@QAE@PBD@Z(str) _ZN8CHStringC1EPKc
@ thiscall ??0CHString@@QAE@PBE@Z(str) _ZN8CHStringC2EPKh @ thiscall ??0CHString@@QAE@PBE@Z(str) _ZN8CHStringC1EPKh
@ thiscall ??0CHString@@QAE@PBG@Z(wstr) _ZN8CHStringC2EPKw @ thiscall ??0CHString@@QAE@PBG@Z(wstr) _ZN8CHStringC1EPKw
@ thiscall ??0CHString@@QAE@PBGH@Z(wstr long) _ZN8CHStringC2EPKwi @ thiscall ??0CHString@@QAE@PBGH@Z(wstr long) _ZN8CHStringC1EPKwi
@ thiscall ??0CHString@@QAE@GH@Z(long long) _ZN8CHStringC2Ewi @ thiscall ??0CHString@@QAE@GH@Z(long long) _ZN8CHStringC1Ewi
@ thiscall ??0CHString@@QAE@XZ() _ZN8CHStringC2Ev @ thiscall ??0CHString@@QAE@XZ() _ZN8CHStringC1Ev
@ thiscall ?Collate@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CollateEPKw @ thiscall ?Collate@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CollateEPKw
@ thiscall ?Compare@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CompareEPKw @ thiscall ?Compare@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CompareEPKw
@ thiscall ?CompareNoCase@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString13CompareNoCaseEPKw @ thiscall ?CompareNoCase@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString13CompareNoCaseEPKw
@ -43,7 +43,7 @@
@ thiscall ?MakeUpper@CHString@@QAEXXZ() _ZN8CHString9MakeUpperEv @ thiscall ?MakeUpper@CHString@@QAEXXZ() _ZN8CHString9MakeUpperEv
@ thiscall ?Mid@CHString@@QBE?AV1@H@Z(long) _ZNK8CHString3MidEi @ thiscall ?Mid@CHString@@QBE?AV1@H@Z(long) _ZNK8CHString3MidEi
@ thiscall ?Mid@CHString@@QBE?AV1@HH@Z(long long) _ZNK8CHString3MidEii @ thiscall ?Mid@CHString@@QBE?AV1@HH@Z(long long) _ZNK8CHString3MidEii
@ thiscall ?Release@CHString@@KGXPAUCHStringData@@@Z(ptr) _ZN8CHString7ReleaseEP12CHStringData @ thiscall ?Release@CHString@@KGXPAUCHStringData@@@Z(ptr) _ZN8CHString7ReleaseEP12CHStringData@4
@ thiscall ?Release@CHString@@IAEXXZ() _ZN8CHString7ReleaseEv @ thiscall ?Release@CHString@@IAEXXZ() _ZN8CHString7ReleaseEv
@ thiscall ?ReleaseBuffer@CHString@@QAEXH@Z(long) _ZN8CHString13ReleaseBufferEi @ thiscall ?ReleaseBuffer@CHString@@QAEXH@Z(long) _ZN8CHString13ReleaseBufferEi
@ thiscall ?ReverseFind@CHString@@QBEHG@Z(long) _ZNK8CHString11ReverseFindEw @ thiscall ?ReverseFind@CHString@@QBEHG@Z(long) _ZNK8CHString11ReverseFindEw
@ -55,7 +55,7 @@
@ thiscall ?TrimLeft@CHString@@QAEXXZ() _ZN8CHString8TrimLeftEv @ thiscall ?TrimLeft@CHString@@QAEXXZ() _ZN8CHString8TrimLeftEv
@ thiscall ?TrimRight@CHString@@QAEXXZ() _ZN8CHString9TrimRightEv @ thiscall ?TrimRight@CHString@@QAEXXZ() _ZN8CHString9TrimRightEv
@ thiscall ?UnlockBuffer@CHString@@QAEXXZ() _ZN8CHString12UnlockBufferEv @ thiscall ?UnlockBuffer@CHString@@QAEXXZ() _ZN8CHString12UnlockBufferEv
@ thiscall ??BCHString@@QBEPBGXZ(ptr) _ZN8CHStringcvPwEv @ thiscall ??BCHString@@QBEPBGXZ(ptr) _ZNK8CHStringcvPKwEv
@ thiscall ??YCHString@@QAEABV0@ABV0@@Z(ptr) _ZN8CHStringpLERKS_ @ thiscall ??YCHString@@QAEABV0@ABV0@@Z(ptr) _ZN8CHStringpLERKS_
@ thiscall ??YCHString@@QAEABV0@D@Z(long) _ZN8CHStringpLEc @ thiscall ??YCHString@@QAEABV0@D@Z(long) _ZN8CHStringpLEc
@ thiscall ??YCHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringpLEPKw @ thiscall ??YCHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringpLEPKw
@ -68,7 +68,7 @@
@ thiscall ??4CHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringaSEPKw @ thiscall ??4CHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringaSEPKw
@ thiscall ??4CHString@@QAEABV0@G@Z(long) _ZN8CHStringaSEw @ thiscall ??4CHString@@QAEABV0@G@Z(long) _ZN8CHStringaSEw
@ thiscall ??ACHString@@QBEGH@Z(long) _ZNK8CHStringixEi @ thiscall ??ACHString@@QBEGH@Z(long) _ZNK8CHStringixEi
@ thiscall ??1CHString@@QAE@XZ() _ZN8CHStringD2Ev @ thiscall ??1CHString@@QAE@XZ() _ZN8CHStringD1Ev
@ stdcall ??H@YG?AVCHString@@GABV0@@Z(long ptr) _ZplwRK8CHString @ stdcall ??H@YG?AVCHString@@GABV0@@Z(long ptr) _ZplwRK8CHString
@ stdcall ??H@YG?AVCHString@@ABV0@G@Z(ptr long) _ZplRK8CHStringw @ stdcall ??H@YG?AVCHString@@ABV0@G@Z(ptr long) _ZplRK8CHStringw
@ stdcall ??H@YG?AVCHString@@ABV0@PBG@Z(ptr wstr) _ZplRK8CHStringPKw @ stdcall ??H@YG?AVCHString@@ABV0@PBG@Z(ptr wstr) _ZplRK8CHStringPKw

View file

@ -1,76 +1,76 @@
@ thiscall ?AllocBeforeWrite@CHString@@IAEXH@Z(long) @ thiscall ?AllocBeforeWrite@CHString@@IAEXH@Z(long)
@ thiscall ?AllocBuffer@CHString@@IAEXH@Z(long) @ thiscall ?AllocBuffer@CHString@@IAEXH@Z(long)
@ thiscall ?AllocCopy@CHString@@IBEXAAV1@HHH@Z(ptr long long long) @ thiscall ?AllocCopy@CHString@@IBEXAAV1@HHH@Z(ptr long long long)
#@ thiscall ?AllocSysString@CHString@@QBEPAGXZ() @ thiscall ?AllocSysString@CHString@@QBEPAGXZ() ?AllocSysString@CHString@@QBEPA_WXZ
#@ thiscall ?AssignCopy@CHString@@IAEXHPBG@Z(long wstr) @ thiscall ?AssignCopy@CHString@@IAEXHPBG@Z(long wstr) ?AssignCopy@CHString@@IAEXHPB_W@Z
@ thiscall ??0CHString@@QAE@ABV0@@Z(ptr) @ thiscall ??0CHString@@QAE@ABV0@@Z(ptr)
@ thiscall ??0CHString@@QAE@PBD@Z(str) @ thiscall ??0CHString@@QAE@PBD@Z(str)
@ thiscall ??0CHString@@QAE@PBE@Z(str) @ thiscall ??0CHString@@QAE@PBE@Z(str)
#@ thiscall ??0CHString@@QAE@PBG@Z(wstr) @ thiscall ??0CHString@@QAE@PBG@Z(wstr) ??0CHString@@QAE@PB_W@Z
#@ thiscall ??0CHString@@QAE@PBGH@Z(wstr long) @ thiscall ??0CHString@@QAE@PBGH@Z(wstr long) ??0CHString@@QAE@PB_WH@Z
#@ thiscall ??0CHString@@QAE@GH@Z(long long) @ thiscall ??0CHString@@QAE@GH@Z(long long) ??0CHString@@QAE@_WH@Z
@ thiscall ??0CHString@@QAE@XZ() @ thiscall ??0CHString@@QAE@XZ()
#@ thiscall ?Collate@CHString@@QBEHPBG@Z(wstr) @ thiscall ?Collate@CHString@@QBEHPBG@Z(wstr) ?Collate@CHString@@QBEHPB_W@Z
#@ thiscall ?Compare@CHString@@QBEHPBG@Z(wstr) @ thiscall ?Compare@CHString@@QBEHPBG@Z(wstr) ?Compare@CHString@@QBEHPB_W@Z
#@ thiscall ?CompareNoCase@CHString@@QBEHPBG@Z(wstr) @ thiscall ?CompareNoCase@CHString@@QBEHPBG@Z(wstr) ?CompareNoCase@CHString@@QBEHPB_W@Z
#@ thiscall ?ConcatCopy@CHString@@IAEXHPBGH0@Z(long wstr long wstr) @ thiscall ?ConcatCopy@CHString@@IAEXHPBGH0@Z(long wstr long wstr) ?ConcatCopy@CHString@@IAEXHPB_WH0@Z
#@ thiscall ?ConcatInPlace@CHString@@IAEXHPBG@Z(long wstr) @ thiscall ?ConcatInPlace@CHString@@IAEXHPBG@Z(long wstr) ?ConcatInPlace@CHString@@IAEXHPB_W@Z
@ thiscall ?CopyBeforeWrite@CHString@@IAEXXZ() @ thiscall ?CopyBeforeWrite@CHString@@IAEXXZ()
@ thiscall ?Empty@CHString@@QAEXXZ() @ thiscall ?Empty@CHString@@QAEXXZ()
#@ thiscall ?Find@CHString@@QBEHPBG@Z(wstr) @ thiscall ?Find@CHString@@QBEHPBG@Z(wstr) ?Find@CHString@@QBEHPB_W@Z
#@ thiscall ?Find@CHString@@QBEHG@Z(long) @ thiscall ?Find@CHString@@QBEHG@Z(long) ?Find@CHString@@QBEH_W@Z
#@ thiscall ?FindOneOf@CHString@@QBEHPBG@Z(wstr) @ thiscall ?FindOneOf@CHString@@QBEHPBG@Z(wstr) ?FindOneOf@CHString@@QBEHPB_W@Z
@ thiscall ?Format@CHString@@QAAXIZZ(long long long) @ thiscall ?Format@CHString@@QAAXIZZ(long long long)
#@ thiscall ?Format@CHString@@QAAXPBGZZ(long wstr long) @ thiscall ?Format@CHString@@QAAXPBGZZ(long wstr long) ?Format@CHString@@QAAXPB_WZZ
@ thiscall ?FormatMessageW@CHString@@QAAXIZZ(long long long) @ thiscall ?FormatMessageW@CHString@@QAAXIZZ(long long long)
#@ thiscall ?FormatMessageW@CHString@@QAAXPBGZZ(long ptr long) @ thiscall ?FormatMessageW@CHString@@QAAXPBGZZ(long ptr long) ?FormatMessageW@CHString@@QAAXPB_WZZ
#@ thiscall ?FormatV@CHString@@QAEXPBGPAD@Z(wstr long) @ thiscall ?FormatV@CHString@@QAEXPBGPAD@Z(wstr long) ?FormatV@CHString@@QAEXPB_WPAD@Z
@ thiscall ?FreeExtra@CHString@@QAEXXZ() @ thiscall ?FreeExtra@CHString@@QAEXXZ()
@ thiscall ?GetAllocLength@CHString@@QBEHXZ() @ thiscall ?GetAllocLength@CHString@@QBEHXZ()
#@ thiscall ?GetAt@CHString@@QBEGH@Z(long) @ thiscall ?GetAt@CHString@@QBEGH@Z(long) ?GetAt@CHString@@QBE_WH@Z
#@ thiscall ?GetBuffer@CHString@@QAEPAGH@Z(long) @ thiscall ?GetBuffer@CHString@@QAEPAGH@Z(long) ?GetBuffer@CHString@@QAEPA_WH@Z
#@ thiscall ?GetBufferSetLength@CHString@@QAEPAGH@Z(long) @ thiscall ?GetBufferSetLength@CHString@@QAEPAGH@Z(long) ?GetBufferSetLength@CHString@@QAEPA_WH@Z
@ thiscall ?GetData@CHString@@IBEPAUCHStringData@@XZ() @ thiscall ?GetData@CHString@@IBEPAUCHStringData@@XZ()
@ thiscall ?GetLength@CHString@@QBEHXZ() @ thiscall ?GetLength@CHString@@QBEHXZ()
@ thiscall ?Init@CHString@@IAEXXZ() @ thiscall ?Init@CHString@@IAEXXZ()
@ thiscall ?IsEmpty@CHString@@QBEHXZ() @ thiscall ?IsEmpty@CHString@@QBEHXZ()
@ thiscall ?Left@CHString@@QBE?AV1@H@Z(long) @ thiscall ?Left@CHString@@QBE?AV1@H@Z(long)
#@ thiscall ?LoadStringW@CHString@@QAEHI@Z(long) @ thiscall ?LoadStringW@CHString@@QAEHI@Z(long)
#@ thiscall ?LoadStringW@CHString@@IAEHIPAGI@Z(long wstr long) @ thiscall ?LoadStringW@CHString@@IAEHIPAGI@Z(long wstr long) ?LoadStringW@CHString@@IAEHIPA_WI@Z
#@ thiscall ?LockBuffer@CHString@@QAEPAGXZ() @ thiscall ?LockBuffer@CHString@@QAEPAGXZ() ?LockBuffer@CHString@@QAEPA_WXZ
@ thiscall ?MakeLower@CHString@@QAEXXZ() @ thiscall ?MakeLower@CHString@@QAEXXZ()
@ thiscall ?MakeReverse@CHString@@QAEXXZ() @ thiscall ?MakeReverse@CHString@@QAEXXZ()
@ thiscall ?MakeUpper@CHString@@QAEXXZ() @ thiscall ?MakeUpper@CHString@@QAEXXZ()
@ thiscall ?Mid@CHString@@QBE?AV1@H@Z(long) @ thiscall ?Mid@CHString@@QBE?AV1@H@Z(long)
@ thiscall ?Mid@CHString@@QBE?AV1@HH@Z(long long) @ thiscall ?Mid@CHString@@QBE?AV1@HH@Z(long long)
@ thiscall ?Release@CHString@@KGXPAUCHStringData@@@Z(ptr) @ thiscall ?Release@CHString@@KGXPAUCHStringData@@@Z(ptr)
#@ thiscall ?Release@CHString@@IAEXXZ() @ thiscall ?Release@CHString@@IAEXXZ()
#@ thiscall ?ReleaseBuffer@CHString@@QAEXH@Z(long) @ thiscall ?ReleaseBuffer@CHString@@QAEXH@Z(long)
#@ thiscall ?ReverseFind@CHString@@QBEHG@Z(long) @ thiscall ?ReverseFind@CHString@@QBEHG@Z(long) ?ReverseFind@CHString@@QBEH_W@Z
@ thiscall ?Right@CHString@@QBE?AV1@H@Z(long) @ thiscall ?Right@CHString@@QBE?AV1@H@Z(long)
#@ stdcall ?SafeStrlen@CHString@@KGHPBG@Z(wstr) @ stdcall ?SafeStrlen@CHString@@KGHPBG@Z(wstr) ?SafeStrlen@CHString@@KGHPB_W@Z
#@ thiscall ?SetAt@CHString@@QAEXHG@Z(long long) @ thiscall ?SetAt@CHString@@QAEXHG@Z(long long) ?SetAt@CHString@@QAEXH_W@Z
#@ thiscall ?SpanExcluding@CHString@@QBE?AV1@PBG@Z(long wstr) @ thiscall ?SpanExcluding@CHString@@QBE?AV1@PBG@Z(long wstr) ?SpanExcluding@CHString@@QBE?AV1@PB_W@Z
#@ thiscall ?SpanIncluding@CHString@@QBE?AV1@PBG@Z(long wstr) @ thiscall ?SpanIncluding@CHString@@QBE?AV1@PBG@Z(long wstr) ?SpanIncluding@CHString@@QBE?AV1@PB_W@Z
@ thiscall ?TrimLeft@CHString@@QAEXXZ() @ thiscall ?TrimLeft@CHString@@QAEXXZ()
@ thiscall ?TrimRight@CHString@@QAEXXZ() @ thiscall ?TrimRight@CHString@@QAEXXZ()
@ thiscall ?UnlockBuffer@CHString@@QAEXXZ() @ thiscall ?UnlockBuffer@CHString@@QAEXXZ()
#@ thiscall ??BCHString@@QBEPBGXZ(ptr) @ thiscall ??BCHString@@QBEPBGXZ(ptr) ??BCHString@@QBEPB_WXZ
@ thiscall ??YCHString@@QAEABV0@ABV0@@Z(ptr) @ thiscall ??YCHString@@QAEABV0@ABV0@@Z(ptr)
@ thiscall ??YCHString@@QAEABV0@D@Z(long) @ thiscall ??YCHString@@QAEABV0@D@Z(long)
#@ thiscall ??YCHString@@QAEABV0@PBG@Z(wstr) @ thiscall ??YCHString@@QAEABV0@PBG@Z(wstr) ??YCHString@@QAEABV0@PB_W@Z
#@ thiscall ??YCHString@@QAEABV0@G@Z(long) @ thiscall ??YCHString@@QAEABV0@G@Z(long) ??YCHString@@QAEABV0@_W@Z
@ thiscall ??4CHString@@QAEABV0@PAV0@@Z(ptr) @ thiscall ??4CHString@@QAEABV0@PAV0@@Z(ptr)
@ thiscall ??4CHString@@QAEABV0@ABV0@@Z(ptr) @ thiscall ??4CHString@@QAEABV0@ABV0@@Z(ptr)
@ thiscall ??4CHString@@QAEABV0@PBD@Z(str) @ thiscall ??4CHString@@QAEABV0@PBD@Z(str)
@ thiscall ??4CHString@@QAEABV0@D@Z(long) @ thiscall ??4CHString@@QAEABV0@D@Z(long)
@ thiscall ??4CHString@@QAEABV0@PBE@Z(str) @ thiscall ??4CHString@@QAEABV0@PBE@Z(str)
#@ thiscall ??4CHString@@QAEABV0@PBG@Z(wstr) @ thiscall ??4CHString@@QAEABV0@PBG@Z(wstr) ??4CHString@@QAEABV0@PB_W@Z
#@ thiscall ??4CHString@@QAEABV0@G@Z(long) @ thiscall ??4CHString@@QAEABV0@G@Z(long) ??4CHString@@QAEABV0@_W@Z
@ thiscall ??ACHString@@QBEGH@Z(long) @ thiscall ??ACHString@@QBEGH@Z(long) ??ACHString@@QBE_WH@Z
@ thiscall ??1CHString@@QAE@XZ() @ thiscall ??1CHString@@QAE@XZ()
#@ stdcall ??H@YG?AVCHString@@GABV0@@Z(long ptr) @ stdcall ??H@YG?AVCHString@@GABV0@@Z(long ptr) ??H@YG?AVCHString@@_WABV0@@Z
#@ stdcall ??H@YG?AVCHString@@ABV0@G@Z(ptr long) @ stdcall ??H@YG?AVCHString@@ABV0@G@Z(ptr long) ??H@YG?AVCHString@@ABV0@_W@Z
#@ stdcall ??H@YG?AVCHString@@ABV0@PBG@Z(ptr wstr) @ stdcall ??H@YG?AVCHString@@ABV0@PBG@Z(ptr wstr) ??H@YG?AVCHString@@ABV0@PB_W@Z
#@ stdcall ??H@YG?AVCHString@@PBGABV0@@Z(wstr ptr) @ stdcall ??H@YG?AVCHString@@PBGABV0@@Z(wstr ptr) ??H@YG?AVCHString@@PB_WABV0@@Z
@ stdcall ??H@YG?AVCHString@@ABV0@0@Z(ptr ptr) @ stdcall ??H@YG?AVCHString@@ABV0@0@Z(ptr ptr)

View file

@ -51,14 +51,13 @@ public:
int GetLength() const; int GetLength() const;
BOOL IsEmpty() const; BOOL IsEmpty() const;
CHString Left(int nCount) const throw (CHeap_Exception); CHString Left(int nCount) const throw (CHeap_Exception);
int LoadStringW(UINT nID) throw (CHeap_Exception);
LPWSTR LockBuffer(); LPWSTR LockBuffer();
void MakeLower() throw (CHeap_Exception); void MakeLower() throw (CHeap_Exception);
void MakeReverse() throw (CHeap_Exception); void MakeReverse() throw (CHeap_Exception);
void MakeUpper() throw (CHeap_Exception); void MakeUpper() throw (CHeap_Exception);
CHString Mid(int nFirst) const throw (CHeap_Exception); CHString Mid(int nFirst) const throw (CHeap_Exception);
CHString Mid(int nFirst, int nCount) const throw (CHeap_Exception); CHString Mid(int nFirst, int nCount) const throw (CHeap_Exception);
void Release();
void Release(CHStringData* pData);
void ReleaseBuffer(int nNewLength = -1) throw (CHeap_Exception); void ReleaseBuffer(int nNewLength = -1) throw (CHeap_Exception);
int ReverseFind(WCHAR ch) const; int ReverseFind(WCHAR ch) const;
CHString Right(int nCount) const throw (CHeap_Exception); CHString Right(int nCount) const throw (CHeap_Exception);
@ -104,8 +103,9 @@ protected:
void CopyBeforeWrite() throw (CHeap_Exception); void CopyBeforeWrite() throw (CHeap_Exception);
CHStringData* GetData() const; CHStringData* GetData() const;
void Init(); void Init();
int LoadStringW(UINT nID) throw (CHeap_Exception);
int LoadStringW(UINT nID, LPWSTR lpszBuf, UINT nMaxBuf) throw (CHeap_Exception); int LoadStringW(UINT nID, LPWSTR lpszBuf, UINT nMaxBuf) throw (CHeap_Exception);
void Release();
static void WINAPI Release(CHStringData* pData);
static int WINAPI SafeStrlen(LPCWSTR lpsz); static int WINAPI SafeStrlen(LPCWSTR lpsz);
}; };