我在我的应用程序中使用C++动态链接库。
type
Tcl_bla = function(filename: PChar): Integer; cdecl;
var
cl_bla: Tcl_bla;
function CallLibraryProc(Proc: String): Pointer;
begin
Result := GetProcAddress(Handle, PChar(Proc));
if not Assigned(Result) then
Loaded := False;
if not Loaded then
MessageBox(0,
经过大量的实验,我找到了一种方法来交换PChar从FreePascal编译的动态链接库与Delphi编译的可执行文件。我负责动态链接库和可执行文件的源代码,但一个必须在FreePascal中,另一个必须在Delphi中。我的解决方案涉及DLL中的以下方法:
function GetAString(): PChar;
var aString: string;
begin
aString := 'My String';
result := StrAlloc(length(aString) + 1);
StrPCopy(result, aString);
end;
p
在Delphi程序中,我使用DLL来控制外部可执行文件。动态链接库是用Visual C++编写的。在C++中,使用DLL的代码是:
// defining pointer's type to a function compatible with 'launcher' function:
typedef int (WINAPI* PFI_HD_ST_N)(HDC, LPCSTR, int);
…
…
HINSTANCE m_hiDLLCTRL; // handle to DLL instance
PFI_HD_ST_N pfStart; // pointer to
我对pascal完全陌生。我想在免费的pascal中调用.dll文件中的函数,当我运行项目时,我得到了以下错误:
在动态链接库HNLib.dll中找不到过程入口点GetProcAddress。
代码如下:
Program Test;
function GetProcAddress : Integer; cdecl; external 'HNLib.dll';
function GetProcAddress : Single; cdecl; external 'HNLib.dll';
procedure GetProcAddress( X : Single); c
我需要在另一个动态链接库(Visual C++ )中加载一个动态链接库,这样我就可以在第二个动态链接库中使用嵌入在第一个动态链接库中的类。我有这两个库的代码,因为我创建了两个dll,但我从来没有动态加载过库,所以我不确定这是如何完成的……
此外,我想使这个多平台,我已经编译为.dll和.so,所以这将是一个伟大的平台无关的方法来做this...otherwise,我可以使用宏,以包括windows或linux特定的代码。
致以最良好的问候和万分感谢
我在我的C# ASP.Net web应用程序中使用DLLImport加载C++动态链接库。DLL主要读取一些CSV文件,并对其进行操作并创建新文件。
在我成功地运行了这个方法之后,再次运行它,然后我得到了C++异常。
我想从网站上卸载C++动态链接库,这样用户就可以重新加载动态链接库并重新运行该方法。您是否知道如何消除此错误或摆脱此错误消息,以便DLL在运行后可以卸载?
如何在vb6中调用动态链接库导出函数?CallWindowProc在参数方面受到了限制。例如,如何调用此函数?
Dim lb As Long, pa As Long
lb = LoadLibrary("wininet.dll")
pa = GetProcAddress(lb, "InternetOpen")
作为C++练习的一部分,我创建了一个简单的动态链接库,但在调用动态链接库函数时遇到访问冲突异常。下面是DLL的头文件(我怀疑CPP在这里是否有用):
#pragma once
namespace MathFuncs
{
class MyMathFuncs
{
public:
// Returns a + b
static __declspec(dllexport) double Add(double a, double b);
// Returns a - b
static __declspec(dllexport) double Subtract(doub