如何在不添加DLL作为参考的情况下在C#中使用DLL函数?

时间:2015-05-04 06:21:30

标签: c# dll namespaces declaration

我正在尝试使用无法通过Visual Studio添加为引用的DLL中的函数(显示“无法添加引用”的消息)。但是,我已经从DLL的创建者那里获得了指示,他们建议我在VB.Net中使用它们:

Private Declare Function Prn_Init Lib "VAx_VPOS396_APPAPI.dll" () As Integer

这有效,但现在我想用C#编写一个程序。如何将该声明“翻译”为C#?

附加:在C ++中,声明带有* .h文件,其中包含以下行:

#ifndef  _VPOS396DLL_API_H
#define  _VPOS396DLL_API_H
VPOS396_DLL_API     int Prn_Init(void);

2 个答案:

答案 0 :(得分:1)

您应该创建要在C#中使用的方法,使它们extern并添加[DllImport]属性。例如:

[DllImport("kernel32.dll")]
static extern bool Beep(uint dwFreq, uint dwDuration);

请参阅https://msdn.microsoft.com/en-us/library/aa984739%28v=vs.71%29.aspx

答案 1 :(得分:0)

[System.Runtime.InteropServices.DllImport(" VAx_VPOS396_APPAPI.dll&#34)]

public static extern unsafe Int32 Prn_Init(void);

("不安全"是可选的)