FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour create a harbour dll containing functions to be executed
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: create a harbour dll containing functions to be executed

Posted: Wed Sep 07, 2016 02:08 PM

Romeo,

Please include the code that I posted here inside #pragma BEGINDUMP ... ENDDUMP

viewtopic.php?p=193644#p193644

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 17
Joined: Thu Feb 28, 2008 06:56 PM

Re: create a harbour dll containing functions to be executed

Posted: Thu Sep 08, 2016 06:53 PM

Antonio,

Do you know if you can call a harbour DLL from a C# .Net exe ? If so can you provide an example?

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: create a harbour dll containing functions to be executed

Posted: Thu Sep 08, 2016 08:28 PM
Perry,

Here you have an example that I coded for FiveNet:

https://bitbucket.org/fivetech/fivenet/src/fdc55d7abee75799ae25b716c4c79c06556aa8ee/source/cs/fivetech.cs?at=master&fileviewer=file-view-default

Look for:

public class FiveNet
{
// public string AppName;

[ DllImport ( "ftsnet.dll", CallingConvention = CallingConvention.Cdecl ) ]
public static extern void One( uint pBlock );
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1
Joined: Wed Aug 31, 2016 03:26 PM

Re: create a harbour dll containing functions to be executed

Posted: Thu Sep 08, 2016 08:51 PM

Antonio,

I'm not sure that I have the Harbour DLL setup properly. I receive the following error

An unhandled exception of type 'System.EntryPointNotFoundException' occurred in WindowsFormsApplication1.exe

Additional information: Unable to find an entry point named 'OneParam' in DLL 'Mydll.dll'.

This is the code we are using for the DLL

// Build a DLL from this code using: buildhd.bat mydll
// Please review TESTMYDL.prg to see how to use this DLL.

//----------------------------------------------------------------------------//

function Main()

MsgInfo( "Inside DLL main()" )

return nil

//----------------------------------------------------------------------------//

function OneParam( x )

MsgInfo( x )

return nil

//----------------------------------------------------------------------------//

pragma BEGINDUMP

include <windows.h>

include <hbapi.h>

include <hbapiitm.h>

__declspec( dllexport ) LONG pascal DOPROC( char * cProcName, char * cParam )
{
PHB_ITEM pItem = hb_itemPutC( NULL, cParam );

if( cProcName )
{
hb_itemDoC( cProcName, 1, ( PHB_ITEM ) pItem, 0 );
hb_itemRelease( pItem );
}
else
MessageBox( 0, "inside the DLL", "DOPROC", 0 );

return 0;
}

BOOL WINAPI DllEntryPoint( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved )
{
HB_SYMBOL_UNUSED( hinstDLL );
HB_SYMBOL_UNUSED( fdwReason );
HB_SYMBOL_UNUSED( lpvReserved );

switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
MessageBox( 0, "DLL properly loaded", "DLL entry", 0 );
hb_vmInit( 0 );
break;

  case DLL_PROCESS_DETACH:
       MessageBox( 0, &quot;DLL unloaded&quot;, &quot;DLL exit&quot;, 0 );
       break;

}

return TRUE;
}

pragma ENDDUMP

//----------------------------------------------------------------------------//

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: create a harbour dll containing functions to be executed

Posted: Thu Sep 08, 2016 10:07 PM

You are not exporting OneParam() from the DLL so you can not call OneParam() directly from your EXE.

You have to call DOPROC() from your EXE, as it is the exported function of the DLL

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 340
Joined: Thu Jan 25, 2007 03:53 PM

Re: create a harbour dll containing functions to be executed

Posted: Mon Sep 19, 2016 09:07 AM

NO more help ?

Posts: 340
Joined: Thu Jan 25, 2007 03:53 PM

Re: create a harbour dll containing functions to be executed

Posted: Mon Sep 19, 2016 09:36 AM

Hi dear Perry Nichols,
please can you kindly send me at romeox@tiscali.it those files:

MYDLL.PRG
TESTMYDLL.PRG
BUILDHD.BAT

I wrong samethins in my files, and it doesnot work !

FWH 16.02
many thanks

Posts: 340
Joined: Thu Jan 25, 2007 03:53 PM

Re: create a harbour dll containing functions to be executed

Posted: Mon Sep 19, 2016 09:53 AM

OK, i retrive my error.

it works now !

tks

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: create a harbour dll containing functions to be executed

Posted: Mon Sep 19, 2016 11:21 AM

very good :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion