|
-
Jan 7th, 2004, 07:52 AM
#1
Thread Starter
Fanatic Member
How do I write this VB6 dll call in C#? [RESOLVED]
How do I call a legacy 32-bit dll from C#?
The VB6 code would look like this:
VB Code:
Option Explicit
Private Declare Function MyFunc Lib "my.dll" _
(ByVal cmd As String) As Boolean
Private Sub Command1_Click()
If MyFunc("abc") Then
MsgBox "Cool!"
End If
End Sub
How should that look in C#?
Thanks!
Last edited by BrianHawley; Jan 10th, 2004 at 08:58 AM.
Brian
(Fighting with the RightToLeft bugs in VS 2005)
-
Jan 7th, 2004, 12:21 PM
#2
http://msdn.microsoft.com/library/de...rfExternPG.asp
Code:
class SomethingOrOther
{
[DllImport("my.Dll")]
public static extern bool MyFunc(string cmd);
private void btnBlah_Click(object sender, EventArgs e)
{
if (MyFunc("abc"))
{
// Etc etc
}
}
}
Last edited by axion_sa; Jan 7th, 2004 at 12:25 PM.
-
Jan 10th, 2004, 08:57 AM
#3
Thread Starter
Fanatic Member
Many thanks!
Brian
(Fighting with the RightToLeft bugs in VS 2005)
-
Jul 20th, 2010, 09:03 PM
#4
New Member
Re: How do I write this VB6 dll call in C#? [RESOLVED]
Please help: I did this example verbatim except for my path statement and I got the following erro:
Unable to find an entry point named 'MyFunc' in DLL 'c:\MyFunction32\my.Dll'.
Any ideas ?
-
Jul 21st, 2010, 08:09 AM
#5
Re: How do I write this VB6 dll call in C#? [RESOLVED]
 Originally Posted by talktodale
Please help: I did this example verbatim except for my path statement and I got the following erro:
Unable to find an entry point named 'MyFunc' in DLL 'c:\MyFunction32\my.Dll'.
Any ideas ?
Do you have the code for my.dll?
The DLLImport directive works with DLL's that have exported functions.
 Originally Posted by msdn
These attributes explicitly define the DLL's interface to its client, which can be the executable file or another DLL. Declaring functions as dllexport eliminates the need for a module-definition (.DEF) file, at least with respect to the specification of exported functions. Note that dllexport replaces the __export keyword.
If a class is marked declspec(dllexport), any specializations of class templates in the class hierarchy are implicitly marked as declspec(dllexport). This means templates are explicitly instantiated and its members must be defined.
dllexport of a C++ function will expose the function with C++ name mangling. If C++ name mangling is not desired, either use a .def file (EXPORTS keyword) or declare the function as extern "C".
Everything that has a computer in will fail. Everything in your life, from a watch to a car to, you know, a radio, to an iPhone, it will fail if it has a computer in it. They should kill the people who made those things.- 'Woz'
save a blobFileStreamDataTable To Text Filemy blog
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|