• C

make DLL

Little help needed.
Using  C++ 40  Win NT
Failure to build DLL file
----
#include <windows.h>
#include <ole2.h>
#include <sql.h>
#include <sqlext.h>

#ifdef _WIN32
  #define CCONV _stdcall
  #define NOMANGLE
#else
  #define CCONV FAR PASCAL _export
  #define NOMANGLE EXTERN_C
  #include <stdlib.h>
  #include <compobj.h>    
  #include <dispatch.h>
  #include <variant.h>
  #include <olenls.h>  
#endif

NOMANGLE LONG CCONV PassByte ()
{
RETCODE rs;
HENV henv;
rs=SQLAllocEnv(&henv);
rs=SQLFreeEnv(henv);
return      rs;
}
-----------------------------def, file
LIBRARY vb4dll

CODE      PRELOAD MOVEABLE DISCARDABLE
DATA      PRELOAD MOVEABLE

EXPORTS
      PassByte      @1
-----------
Error message LNK1141
Failure durning bulild of export file

Please give a clue.

mativare@i-2000.com
Please make corrections to code and post , then every
beginner(like me) can see it on a net.
Matt
LVL 1
mativareAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

msmitsCommented:
Is the file a .c file or a .cpp. When .cpp you must use:

extern "C" {
...
}

or just use a .c file.
This will disable the name mangling so the linker can find the right function.

0
mativareAuthor Commented:
filenames were  vb4dll.c
and vb4dll.def
Unfortunately question remains unanswered.
Thanks  for a attempt.
Matthew
0
msmitsCommented:
except for the SQL stuff I could generate your DLL fine. I use Borland C++ 5.02 on win95 at the moment.

0
The Lifecycle Approach to Managing Security Policy

Managing application connectivity and security policies can be achieved more effectively when following a framework that automates repeatable processes and ensures that the right activities are performed in the right order.

navigator010897Commented:
Um,
you have a real strange problem.

I just compiled your dll, the .cpp and the .def file on MSVC++ 4.0 Standard on Win95 and if compiled flawlessly.  

Perhaps you set up the project wrong, and instead of just a pure dll you set up an app wizard mfc dll?  Or maybe perhaps you didn't do a full install with msvc and are missing some of the header files needed for the ole/sql?
0
mativareAuthor Commented:
I used "pure dll Option". It compiled too, but building(linking) went wrong
Messages LNK 4044, LNK1181,  LNK1141
Still hoping
Matthew
0
navigator010897Commented:
Are you sure you included all of the database support options when you installed MSVC 4.0?  It seems very odd that you are having this trouble, as I said, I just cut and pasted your code, and it worked flawlessly...
0
Seeker092397Commented:
Along with LNK1181 error must come a name of a file linker could not find. What is it?
0
mativareAuthor Commented:
fatal error LNK1181: cannot open input file "Files\DevStudio\BIN\link.exe"
Good man you solved it, because my Dev Studio is located in
"Program Files."
Seems I need to do reinstallment of VC++, if you have any other hints
how to "tell" compiler where are files, let me know.
 I know there are files  like
setup .ini and...
Thanks a lot.
Matt
Matthew


0
Seeker092397Commented:
I am glad I helped You. If You'd be so kind, please transfer me the value of the answer. Thanx.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C

From novice to tech pro — start learning today.