xd2txlib.dllɂ

xdoc2txtDLLłłB
쌠EṕAxdoc2txtɏ܂B


zzt@C

xd2txlib.dll	xdoc2txt DLL
Sample1/*	C# TvvO(DllImportŁF񐄏)
Sample2/*	VB.Net TvvO(DllImportŁF񐄏)
Sample3/*	C++ TvvO
Sample4/*	C# TvvO(LoadLibraryŁF)
Sample5/*	VB.Net TvvO(LoadLibraryŁFFVisual Studio2010p)
FileFind/*	C# TvvOit@CNCAg̗j

ӎ

Exd2txlib.dll(64bit)ĂяoAvP[VJƂ́A^[QbgCPUAnyCPUɂKv܂B
	C#	vpeBrhvbgtH[^[Qbg(G): AnyCPU
	VB.Net	vpeBRpCڍ׃RpCIvV(A)^[QbgCPU(U):AnyCPU

Exd2txlib.dllCOMIuWFNgł͂܂̂ŁADllImport܂LoadLibraryŌĂяoKv܂B
@̓IȎgp@̓TvvOQƂĂB

Eydvzxd2txlib.dll̃[h@́ADllImport܂LoadLibrary̕@܂A
@DllImportł̓AvP[VI܂ŃȂ߁A
@\Ȃ̓t@CɂNbVNꍇɃAvP[Vُ̂I\܂B
  AăeLXgosꍇ́A1t@C̒oLoadLibrary & FreeLibrary
@xd2txlib.dll[hE邱Ƃ߂܂BSample4,Sample5QƂĂB

Exd2txlib.dll(xdoc2txt)̓Ńt@C̓WJуGR[hs߁A𒴂鋐ȃt@C͈܂B
Exd2txlib.dll̓T|[gĂgqȊO̓eLXgt@CƌȂăGR[h݂܂BoCit@Cł͎gpȂłB


`F
int ExtractText(BSTR lpFileName,	// ̓t@C
		bool bProp,		// T:vpeB̒o F:{eLXg̒o
		BSTR *lpFileText)	// oeLXg

int ExtractTextEx(BSTR lpFileName,	// ̓t@C
		bool bProp,		// T:vpeB̒o F:{eLXg̒o
		BSTR lpOptions,		// R}hCIvV(-r -o -g -x ̂ݗL)
		BSTR *lpFileText)	// oeLXg


	eLXg̒oʂUTF16łB


C#̗(1)FDllImport

       [DllImport("xd2txlib.dll", CharSet = CharSet.Unicode,
            CallingConvention = CallingConvention.Cdecl)]
       public static extern int ExtractText(
       [MarshalAs(UnmanagedType.BStr)] String lpFileName,
       bool bProp,
       [MarshalAs(UnmanagedType.BStr)] ref String lpFileText);

	string fileName = "sample.doc";
	string fileText = "";
	int fileLength = ExtractText( fileName, false, ref fileText );

C#̗(2)FI[hŁij

        // LoadLibraryAFreeLibraryAGetProcAddressC|[g
        [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
        internal static extern IntPtr LoadLibrary(string lpFileName);
        [DllImport("kernel32", SetLastError = true)]
        internal static extern bool FreeLibrary(IntPtr hModule);
        [DllImport("kernel32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = false)]
        internal static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);

        // ֐delegateŐ錾
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        public delegate int ExtractText(
          [MarshalAs(UnmanagedType.BStr)] String lpFileName,
          bool bProp,
          [MarshalAs(UnmanagedType.BStr)] ref String lpFileText);


	string fileName = "sample.doc";
        string fileText = "";
        // Idll[hAgpɉ
        IntPtr handle = LoadLibrary("xd2txlib.dll");
        IntPtr funcPtr = GetProcAddress(handle, "ExtractText");

        ExtractText extractText = (ExtractText)Marshal.GetDelegateForFunctionPointer(funcPtr, typeof(ExtractText));
        int fileLength = extractText(fileName, false, ref fileText);
        FreeLibrary(handle);


VB.Net̗(1)FDllImport

    <DllImport("xd2txlib.dll", SetLastError:=True, CharSet:=CharSet.Unicode, CallingConvention:=CallingConvention.Cdecl)> _
    Public Shared Function _
        ExtractText( _
        <MarshalAs(UnmanagedType.BStr)> ByVal lpFileName As String, _
         ByVal bProp As Boolean, _
         <MarshalAs(UnmanagedType.BStr)> ByRef lpFileText As String _
        ) As Integer
    End Function


    Dim fileName As String
    Dim fileText As String

    fileName = "sample.doc"
    fileText = ""

    ExtractText( fileName, False, fileText)

VB.Net̗(2)FI[hŁij

    '********************************************************
    '*  LoadLibrary,FreeLibrary,GetProcAddress ̐錾
    '********************************************************
    <DllImport("kernel32", CharSet:=CharSet.Auto, SetLastError:=True)> _
    Private Shared Function LoadLibrary(ByVal lpFileName As String) As IntPtr
    End Function

    <DllImport("kernel32", CharSet:=CharSet.Auto, SetLastError:=True)> _
    Private Shared Function FreeLibrary(ByVal hModule As IntPtr) As Boolean
    End Function

    <DllImport("kernel32", CharSet:=CharSet.Ansi, SetLastError:=True)> _
    Private Shared Function GetProcAddress(ByVal hModule As IntPtr, ByVal lpProcName As String) As IntPtr
    End Function

    '********************************************************
    '* ExtractText̐錾
    '********************************************************
    <UnmanagedFunctionPointer(CallingConvention.Cdecl)> _
    Delegate Sub ExtractText( _
        <MarshalAs(UnmanagedType.BStr)> ByVal lpFileName As String, _
        ByVal bProp As Boolean, _
        <MarshalAs(UnmanagedType.BStr)> ByRef lpFileText As String _
        )

	Dim fileText As String
	Dim fileName As String
	fileText = ""
	fileName = "sample.doc"

	' xd2txlib.dll LoadLibraryoRŃ[h
	Dim TaragetDll As String = "xd2txlib.dll"
	Dim TaragetFunc As String = "ExtractText"
	Dim hModule As UInt32 = LoadLibrary(TaragetDll)
	If hModule = 0 Then
	TextBox1.Text = "xd2txlib.dll not found"
	Exit Sub
	End If

	' ϊ̎s
	Dim ptr As IntPtr
	ptr = GetProcAddress(hModule, "ExtractText")

	If ptr <> IntPtr.Zero Then
		Dim dllFunc As ExtractText = _
		Marshal.GetDelegateForFunctionPointer( _
		ptr, _
		GetType(ExtractText) _
		)

		Call dllFunc(fileName, False, fileText)

	End If


	' DLL̉
	Call FreeLibrary(hModule)


Ăяo

ExtractText  ̌Ăяostdcallł͂Ȃcdeclł̂ŁAĂяoɖĂB
iTvvOQƁj
srdcallŌĂяoƁAX^bNsɂȂ\܂B


 
2017/07/05	64bitŒǉ
2012/11/15	̕тCOMR|[lgłƓɂ
2012/11/13	xdoc2txt 2.0DLLłƂĔzz
2014/06/14	I[h̃Tv(Sample4,Sample5)ǉ
2015/03/11	ĂяoKcdecl𖾎
