Call function from DLL?

南楼画角 提交于 2019-11-29 01:04:58

Add the DLL via the solution explorer - right click on references --> add reference then "Browse" to your DLL - then it should be available.

Depends on what type of DLL. Is this built in .NET ? if it is unmanaged code then here is an example otherwise the Answer from Rob will work.

Unmanaged C++ dll example:

using System;
using System.Runtime.InteropServices;

You may need to use DllImport

[DllImport(@"C:\Cadence\SPB_16.5\tools\bin\mpsc.dll")]
static extern void mpscExit();

or

[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);

Then each of those are called like this:

// a specific DLL method/function call
mpscExit();
// user32.dll is Microsoft, path not needed
MessageBox(new IntPtr(0), "Test", "Test Dialog", 0);  

you need to actually load the DLL into your application at run time, thus the Dynamic part of DLL. You also need the header file that defines what functions are in the DLL so your compile knows what functions have been defined. My knowledge here is based on C++ so how this works for C# I am not to sure, but it will be something like that...

I am late to the party here but am leaving this answer for someone pulling his/her hair out like me. So basically, I did not have the luxury of VS IDE when facing this issue.I was trying to compile the code via cmdline using csc. In order to reference a dll, just add the compiler flag /r:PathToDll/NameOfTheDll to csc.

The command would look like

csc /r:PathToDll/NameOfTheDll /out:OutputExeName FileWhichIsReferencingTheDll.cs

In FileWhichIsReferencingTheDll.cs add using namespace AppropriateNameSpace; to access the functions (by calling class.functionName if static or by creating an object of the class and invoking the function on the object).

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!