We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

make DLL

mativare
mativare asked
on
Medium Priority
502 Views
Last Modified: 2011-10-03
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
Comment
Watch Question

Commented:
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.

Author

Commented:
filenames were  vb4dll.c
and vb4dll.def
Unfortunately question remains unanswered.
Thanks  for a attempt.
Matthew

Commented:
except for the SQL stuff I could generate your DLL fine. I use Borland C++ 5.02 on win95 at the moment.

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?

Author

Commented:
I used "pure dll Option". It compiled too, but building(linking) went wrong
Messages LNK 4044, LNK1181,  LNK1141
Still hoping
Matthew
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...
Along with LNK1181 error must come a name of a file linker could not find. What is it?

Author

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


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

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

Ask the Experts
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.