我有一个用Delphi2007编译的DLL,还有一个在其他Delphi项目中使用它的例子。下面是代码的一部分:
TErrorCallback = function(Msg:PChar):byte of object;
TSaveEventCallback = function (Line:PChar; HiCode:PChar; LoCode:PChar; MobileNo:PChar):byte of object;
function InitModule(ErrorCallback:TErrorCallback; SaveEventCallback :TSaveEventCallback
我有一个非托管C++ dll,我无权访问它的代码,但有它的所有方法声明。
为了简单起见,我们假设.h如下所示:
#include <iostream>
#ifndef NUMERIC_LIBRARY
#define NUMERIC_LIBRARY
class Numeric
{
public:
Numeric();
int Add(int a, int b);
~Numeric();
};
#endif
和方法在.cpp文件中的实现
int Numeric::Add(int a, int b)
{
return
VB6.0中的代码是:
Private Declare Sub suba Lib "D:\try_vb\c_dll\Dll1\Dll1\Debug\Dll1.dll" (ByRef a As Single, ByRef b As Single, ByRef c As Single)
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
Dim c As Single
a = 10#
b = 2#
Call suba(a, b, c)
Text1.Text
我试图弄清楚如何在运行时导入和使用.dll应用程序中的C#。使用Assembly.LoadFile(),我设法让我的程序加载dll (这个部分肯定是工作的,因为我可以用ToString()获取类的名称),但是我无法在控制台应用程序中使用'Output‘方法。我正在编译.dll,然后将它移到控制台的项目中。在CreateInstance和能够使用这些方法之间是否有额外的步骤?
这是我的DLL中的类:
namespace DLL
{
using System;
public class Class1
{
public void Output(str
Win32 C++ DLL项目与其他DLL一起保存在我的bin/C++文件中。
在我的x86项目上运行调试C#模式。
从以前解决这个问题的尝试中,我已经将构建配置从x64更改为x64,但仍然收到相同的错误。
namespace ComputerToArduino
{
public partial class Form1 : Form
{
[DllImport("MySimpleLib.dll", CharSet = CharSet.Unicode)]
public static extern int AddNumber(int
我正在尝试在C++/CLI .dll项目中使用原生.dll项目中的C++类。Visual Studio2010,.NET Framework3.5。到目前为止,我得到的是:
// This is a common macro:
#ifdef ISDLL
#define DLL __declspec(dllexport)
#else
#define DLL __declspec(dllimport)
#endif
NativeProject:
//INativeType.h:
class DLL INativeType {
public:
vi
我有一个要求,要求使用从C++ dll导出的函数。
在导出的函数中需要发生很多事情,但是我不想重写我编写的所有C#代码。
我只想将C#代码粘贴到DLL中并完成。
注意:我不想调用C# DLL,我想将C#代码放入C++ dll中。
下面是Exports.def文件:
LIBRARY InstallCheckWin32
EXPORTS
IsConnectionPointValid @1
fnTest @2
下面是DLL的.h文件:
// The following ifdef block is the standard way of creating macros which ma
我已经成功地使用JNA包装了一个C DLL库。因为我不是C开发部分的所有者,所以我想隐藏我在Java端封装的C函数的一些参数。
更准确地说,我的java代码如下:
public interface IJNALibrary extends Library {
// INIT FUNCTION
public int initFunction(int firstValue, int secondValue, int thirdValue);
}
在C端,我在*.h文件中有:
extern "C" CSAMPLE_API int initFunction (