Solved

.DLL file created in C++ yields error message

Posted on 2002-06-26
9
259 Views
Last Modified: 2010-05-02
We are using a .dll file created in C++ and placed in the System32 directory.   When called from ACCESS VBA it yields the following error message:

         "Bad DLL Calling Convention"

  We are unable to get a handle on why this is happening or what we must do to change it.
0
Comment
Question by:FidelMike
  • 2
  • 2
  • 2
  • +3
9 Comments
 
LVL 18

Expert Comment

by:deighton
ID: 7110561
what are the parameters for the .dll?

Are strings involved?
0
 
LVL 18

Expert Comment

by:deighton
ID: 7110615
how are you declaring the call to the api?
0
 

Author Comment

by:FidelMike
ID: 7110735

Here is how I am declaring this .dll for this particular function.

Declare Function PSL_Connect Lib "PSL_ApiR.dll" _
                            (ByVal ServiceName As String, _
                             ByVal Server As String, _
                             ByVal Port As Long) As Long
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 5

Accepted Solution

by:
rpai earned 100 total points
ID: 7110758
I believe the default convention in C++ is  __cdecl. VB only supports calling functions in dlls that are declared with the __stdcall calling convention. Try declaring your dlls function as __stdcall.
Hope that helps.
0
 

Author Comment

by:FidelMike
ID: 7110802
VB will not accept the "_" character.  How can we create the .dll in order to keep the naming convention that we are calling in VBA?  Can this be done?

  Declare Function PSL_Connect Lib "PSL_ApiR.dll" _
                           (ByVal ServiceName As String, _
                            ByVal Server As String, _
                            ByVal Port As Long) As Long

  We need the .DLL to name this function internally the way shown above.
0
 
LVL 5

Expert Comment

by:rpai
ID: 7110848
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 7111323
0
 
LVL 49

Expert Comment

by:DanRollins
ID: 7963112
Hi FidelMike,
It appears that you have forgotten this question. I will ask Community Support to close it unless you finalize it within 7 days. I will ask a Community Support Moderator to:

    Accept rpai's comment(s) as an answer.

FidelMike, if you think your question was not answered at all or if you need help, just post a new comment here; Community Support will help you.  DO NOT accept this comment as an answer.

EXPERTS: If you disagree with that recommendation, please post an explanatory comment.
==========
DanRollins -- EE database cleanup volunteer
0
 
LVL 5

Expert Comment

by:Netminder
ID: 8039241
Per recommendation, force-accepted.

Netminder
EE Admin
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

679 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question