We help IT Professionals succeed at work.

Using C DLLs

gur
gur asked
on
Medium Priority
175 Views
Last Modified: 2010-04-04
I now beleive thet the problem i described accured
because i made a 32bit DLL and tried to use it with DELPHI 1.0
which is 16 bit.

After making a 16 bit DLL, i keep getting , at run time, when
DELPHI is trying to LINK the DLL, a "can't find file" message.

The code looks like thet:

     .
     .
     .
  function CreateDiffJpeg (a : Integer):Integer;
  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  Form1: TForm1;

  index : integer;

implementation

{$R *.DFM}
function CreateDiffJpeg ;  external 'diffjpeg.dll' index 1;

procedure TForm1.Button1Click(Sender: TObject);
begin

     index := index +1;



end;

end.


Any idea ?
Comment
Watch Question

Commented:
You should post the relevent code, so we can see what you might me doing wrong.

Commented:
In the Delphi Program link the dll-call like this:function ComInit (Handle: Integer): Integer; cdecl; extern "testdll.dll" index 12;
It is very import to supply the index, I couldnt manage to linka DLL with the Name. You can get the Index e.g. in B C++ 5.0by using IMPDEF. Now you can read the indexes in the .DEF file.! Indexes may change when recompiling the program.* cdecl =>  C-Stack-Handling

In the C++- DLL:
Declaration as folowing:
#ifdef __WIN32_DLL__
  #define exp __declspec(dllexport)
#else
  #define exp __declspec(dllimport)
#endif

int exp ComInit (int Handle);

(tried in MC C++ 4.0 , should also work with Borland C)

There might appear problems, when you link a DLL thats links another DLL, the DLL might be loaded twice.Gregor


Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
gur

Author

Commented:
Edited text of question
gur

Author

Commented:
Edited text of question
gur

Author

Commented:
I am sorry, but the problem was in the C DLL :
It seems thet there must be two functions (except my regular code) : the WEP exit function (in 16 bit DLL) and an EntryPoint function.

Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.