标签: dll

将C++翻译为Delphi,或转换为dll

我试图通过Delphi中的USB端口连接到Graphtec绘图仪.以下是C++代码的snipet由制造商提供:

#include <windows.h>
#include <stdio.h>

typedef HANDLE (APIENTRY *PROC_GITK_OPENUSB)(int, int, DWORD);

int main(int argc, char* argv[])
{
    HMODULE hUsbLib = LoadLibrary("GITKUSBP.DLL");

    PROC_GETK_OPENUSB lpfnGITK_OpenUsb = (PROC_GITK_OPENUSB)GetProcAddress(hUsbLib,            "GITK_OpenUsb");

    HANDLE hWrite = (lpgnGITK_OpenUsb)(0, 0, FILE_FLAG_OVERLAPPED);
    HANDLE hRead  = (lpgnGITK_OpenUsb)(0, 1, FILE_FLAG_OVERLAPPED);

    OVERLAPPED WriteEvt, ReadEvt;
}
Run Code Online (Sandbox Code Playgroud)

当然,还有更多内容,但这似乎是关键代码.在Delphi中,我尝试翻译并不成功.我要么需要一些翻译专业知识,要么将C++代码转换成我可以从Delphi调用的dll的一些指导.

c++ delphi dll language-translation

0
推荐指数
1
解决办法
786
查看次数

访问dll中的方法

好吧,所以首先我已经在项目中设置了我正在使用dll的引用.我想要做的是访问我的utils dll中的方法"haha"

dll的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace Utils
{
    public class kb
    {
        public class yes {
            public void haha(string yes)
            { 
             int test = Convert.ToInt32(yes);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我试图访问哈哈的项目我只有"Utils.kb.yes",但没有方法...我所能做的就是Utils.kb.yes.equals和Utils.kb.yes.ReferenceEquals.

c# dll

0
推荐指数
1
解决办法
53
查看次数

-1
推荐指数
1
解决办法
2万
查看次数

下载没有防病毒检测的文件

我正在编写一个程序,从我的服务器下载文件(dll)并使用此文件.但是,当下载完成后,我的防病毒软件(卡巴斯基)会使用Constructor.Win32.Downldr.xr检测我的文件.我怎么解决这个问题?

但是,我将我的2个文件放在www.virustotal.com上,并且都没有病毒.

注意:这两个文件(进行下载的程序和文件,即dll)是在Delphi 7中创建的.

delphi dll antivirus virus delphi-7

-1
推荐指数
1
解决办法
819
查看次数

如何在c#中提取.dll文件?

我是.NET应用程序开发的新手.涉及一个项目,有三个模块,如接口层,业务层和数据层; 我建了这些,我得到了.dll文件.

但是我丢失了一个.dll文件的源代码.

我想提取.dll并获得相同的源代码.是否可以从.dll文件中提取我的源代码?

c# dll decompiler

-1
推荐指数
1
解决办法
2万
查看次数

必须做FreeLibrary 2次,虽然我只做了一次LoadLibrary.此外,卸载DLL后,尝试再次加载时,会发生错误

有以下C#代码用于加载和卸载C++ DLL.

我只加载DLL一次,但代码必须卸载DLL 2次.在卸载DLL之后,当我再次加载它,并且我调用DLL的导出函数时,我收到以下错误消息:

尝试读取或写入受保护的内存.这通常表明其他内存已损坏.

DLL依赖于其他DLL.

    /// //////////////handle of FDD DLL:
    System.IntPtr SystemIntPtr_handle_of_DLL=System.IntPtr.Zero;

    private void button4_Click(object sender, EventArgs e)
    {
        try
        {
            string string_Dependency_path = ".\\DLL_Dependencies\\";
            Call_DLL.SetDllDirectory(string_Dependency_path);
            SystemIntPtr_handle_of_DLL = Call_DLL.LoadLibrary("DLL.dll");
            if (SystemIntPtr_handle_of_DLL == System.IntPtr.Zero) { throw new Exception("DLL did not load"); }

        }
        catch (Exception Exception_Object) { MessageBox.Show(Exception_Object.Message); }
    }

    private void button5_Click(object sender, EventArgs e)
    {
        try
        {
            int int_FreeLibrary_counter = 0;
            while (Call_DLL.FreeLibrary(SystemIntPtr_handle_of_DLL))
            {
                int_FreeLibrary_counter++;
            }
            MessageBox.Show("DLL unloaded. You will have to load it again. (Unloaded" + int_FreeLibrary_counter …
Run Code Online (Sandbox Code Playgroud)

c# c++ dll pinvoke loadlibrary

-1
推荐指数
1
解决办法
1400
查看次数

注入 dll 时链接到未解析的符号

我试图将 dll 注入到进程中,但编译后我得到了 TestMain.obj : error LNK2019: link to unresolved external symbol __imp__StrStrIA@8 in function "unsigned long __cdecl GetPid(char *)" (?GetPid@@YAKPAD@Z). 经过多年尝试在代码中找到我的问题并尝试用谷歌搜索它,并与少林僧人一起冥想,我失败了。这是我的代码:

#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>
#include <shlwapi.h>
#include <iostream>
#include <conio.h>
using namespace std;

#define CREATE_THREAD_ACCESS (PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ)

bool IsWindowsNT()
{
   // check current version of Windows
   DWORD version = GetVersion();
   // parse return
   DWORD majorVersion = (DWORD)(LOBYTE(LOWORD(version)));
   DWORD minorVersion = (DWORD)(HIBYTE(LOWORD(version)));
   return (version < 0x80000000);
}

BOOL InjectDLL(DWORD …
Run Code Online (Sandbox Code Playgroud)

c++ dll winapi code-injection

-2
推荐指数
1
解决办法
1974
查看次数

C库导出哪些功能?

如果我在Windows,Linux或Mac中使用C或C++库,有没有办法知道它导出的函数和数据结构及其签名而没有此库的文档?

c c++ dll shared-libraries

-2
推荐指数
1
解决办法
706
查看次数

在Delphi XE2中从dll调用过程

所以,我试图从Delphi XE2中的DLL调用一个过程.但程序不会分配.

我试过在互联网上找到几个例子.正在按预期加载DLL.导出正确写入.

一切似乎都很好,但仍然没有成功.

怎么了?

我的代码如下

type
  TStarter = procedure; stdcall;

...

fTheHookStart: TStarter;

...

procedure TForm1.LoadHookDLL;
begin
  LogLn('Keyboard Hook: Loading...');
  // Load the library
  DLLHandle := LoadLibrary('thehookdll.DLL');

  // If succesful ...
  if Handle <> 0 then
  begin
    LogLn('Keyboard Hook: DLL load OK!');
    LogLn('Keyboard Hook: assigning procedure ...');

    fTheHookStart := TStarter(GetProcAddress(DLLHandle, 'StartTheHook'));
    if @fTheHookStart <> nil then
    begin
      LogLn('Keyboard Hook: procedure assignment OK!');
      LogLn('Keyboard Hook: Starting...');
      fTheHookStart;
    end
    else
    begin
      LogLn('Keyboard Hook: procedure assignment FAIL!');
      FreeLibrary(DLLHandle);
      if Handle <> 0 …
Run Code Online (Sandbox Code Playgroud)

windows delphi dll procedure delphi-xe2

-2
推荐指数
1
解决办法
347
查看次数

你能发现这个DLL的任何问题吗?

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EyesLib
{
    class Class1
    {

    public void drawEyes(int lookAtX, int lookAtY, int width, int height, Graphics eyeArea)
    {
        int xleft = 0, yleft = 0, xright = 0, yright = 0, xpleft = 0, ypleft = 0, xpright = 0, ypright = 0, reye = 0, rpupil = 0;
        xleft = width / 3;
        yleft = height / 2;
        xright = 2 * width / 3;
        yright …
Run Code Online (Sandbox Code Playgroud)

c# dll reference

-2
推荐指数
1
解决办法
50
查看次数