国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

以動態(tài)庫鏈接庫 .dll 探索結構體參數(shù)

這篇具有很好參考價值的文章主要介紹了以動態(tài)庫鏈接庫 .dll 探索結構體參數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Dev c++ C語言實現(xiàn)第一個 dll 動態(tài)鏈接庫 創(chuàng)建與調(diào)用-CSDN博客

?在寫dll 插件中發(fā)現(xiàn)的函數(shù)指針用途和 typedef 的定義指針的用法-CSDN博客

兩步之后,嘗試加入結構體實現(xiàn)整體數(shù)據(jù)使用。

以動態(tài)庫鏈接庫 .dll 探索結構體參數(shù),DLL

注意結構體 Ak

是相同的

代碼如下

DLL文件有兩個,dll.dll是上面提到的鏈接里的

dllv2.dll是這個代碼里的

dllv2.cpp

/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#include <iostream>

using namespace std;

void mainDll(){
	ak.count++;
	ak.number=1; 
	ak.x=0;
	ak.y=0;
	cout<<"atking"<<endl;
	for(int i=0;i<10;i++){
		ak.x++;
	}
	cout<<"count: "<<ak.count<<endl;
}
// dll.h
#ifndef _DLL_H_
#define _DLL_H_

typedef struct Ak{
	int x;								// 位置坐標 
	int y;
	int number;							// 類型 
	int time;							// 時長上限 
	int count;							// 計時 
}; 

Ak ak;

extern "C" 
{
	void mainDll();
}

#endif

?主程序代碼如下文章來源地址http://www.zghlxwxcb.cn/news/detail-848602.html

#include <windows.h>
#include <iostream>


typedef struct Ak
{
	int x;								// 位置坐標
	int y;
	int number;							// 類型
	int time;							// 時長上限
	int count;							// 計時
};

using namespace std;

int main()
{

	HINSTANCE hDLL = LoadLibrary("dll.dll"); 								// 填文件名
	HINSTANCE hDLLv2 = LoadLibrary("dllv2.dll");

	typedef void (*func)(double a, double b, double c[], double* aplusb); 	// 填調(diào)用的輸入?yún)?shù)
	typedef void (*kk)(double a, double b, double c[], double* aplusb) ;

	void (*atk)()=(void (*)())GetProcAddress(hDLLv2,"mainDll"); 			// 強制類型轉(zhuǎn)換為函數(shù)指針,然后成為atk 的替身
	typedef void(*ATK)();													// 定義函數(shù)指針類型,類型名為 ATK ,返回值類型是 void, 參數(shù)是 void
	ATK ky=(ATK)GetProcAddress(hDLLv2,"mainDll");

	func callDll =(func)GetProcAddress(hDLL, "mainDll"); 					// 填調(diào)用的 dll 函數(shù)名
	kk callDllv2= (kk) GetProcAddress(hDLL, "mainDll");

	double a = 1, b = 2, c[3] = {4, 5, 6}, result;

	callDll(a, b, c, &result);
	cout << a << endl;
	cout << b << endl;
	cout << result << endl;
	cout << c[0] << c[1] << c[2] << endl;
	cout<<endl;

	callDllv2(a, b, c, &result);
	cout << a << endl;
	cout << b << endl;
	cout << result << endl;
	cout << c[0] << c[1] << c[2] << endl;

	int i=5;
	while(1)
	{
		atk();
		if(i>=5)
		{
			cout<<"數(shù)據(jù)是否共享: ";
			ky();
			cout<<endl;
			i=0;
		}
		i++;

		Sleep(200);
	}

}

到了這里,關于以動態(tài)庫鏈接庫 .dll 探索結構體參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Java JNA調(diào)用dll動態(tài)鏈接庫

    Java JNA調(diào)用dll動態(tài)鏈接庫

    記錄學習內(nèi)容 C編譯dll環(huán)境: ? ? ? ? IDE:Clion ? ? ? ? ToolChains:MinGW64 Java環(huán)境: ? ? ? ? 版本:jdk1.8 64位 ? ? ? ? JNA依賴版本:5.2.0 (可根據(jù)需要升級,本文以此版本為例) JNA(Java Native Access )提供一組Java工具類用于在運行期間動態(tài)訪問系統(tǒng)本地庫(native library:如W

    2024年02月12日
    瀏覽(13)
  • Rust:使用libloader調(diào)用動態(tài)鏈接庫 (DLL)

    掘金為同人創(chuàng)作:掘金 最近需要使用Rust 動態(tài)調(diào)用 動態(tài)鏈接庫,本來打算是使用 libloading 的,但是 libloading 在調(diào)用dll中的函數(shù)的時,是必須要在編譯時確定參數(shù)和return的類型的。但后來發(fā)現(xiàn)了 libloader 這個包包, libloader 是基于 libloading 的,但是操作起來卻比 libloader 方便。

    2023年04月10日
    瀏覽(49)
  • 前端(node.js)調(diào)用dll動態(tài)鏈接庫

    使用 js node 調(diào)用dll 動態(tài)鏈接庫. github地址如下,包含dll,里面就一個Add方法暴露出來 github Windows 11 22H2 node v16.20.0 Python 3.11.2 需要安裝這倆庫 ffi-napi app.js 第一種不好使,曲線救國的方式這個是。 python-shell app.js python

    2024年02月16日
    瀏覽(21)
  • [python] 羅技動態(tài)鏈接驅(qū)動庫DLL 控制 鍵鼠

    [python] 羅技動態(tài)鏈接驅(qū)動庫DLL 控制 鍵鼠

    最近在玩搬磚游戲晶核, 每天有很多重復繁瑣的\\\"打卡\\\"操作, 得知隔壁御三家游戲就有大佬做了自動收割的輔助工具,我就想模仿寫一個. 不過大佬們寫的開源工具厲害得多,加了神經(jīng)網(wǎng)絡自動識別,實現(xiàn)尋路和點擊功能.我目前最多就是實現(xiàn)一個簡單連點器加色塊識別而已,而且這種

    2024年02月19日
    瀏覽(43)
  • VS2019 DLL動態(tài)鏈接庫生成多個正在運行的Windows應用之間共享的DLL [三]

    VS2019 DLL動態(tài)鏈接庫生成多個正在運行的Windows應用之間共享的DLL [三]

    ? ????????本例程演示如何使用 Visual Studio IDE 通過 Microsoft C++ (MSVC) 編寫自己的動態(tài)鏈接庫 (DLL)。 然后,該演練演示如何從其他 C++ 應用中使用 DLL。 DLL(在基于 UNIX 的操作系統(tǒng)中也稱為“共享庫”)是最有用的 Windows 組件類型之一 。 可以將其用作共享代碼和資源、縮小應

    2024年02月17日
    瀏覽(52)
  • VS2019編譯生成動態(tài)鏈接庫dll的兩種方式

    VS2019編譯生成動態(tài)鏈接庫dll的兩種方式

    ?dll項目的默認結構如下: ?四個文件的內(nèi)容因為是默認生成的,不是特別重要, 接下來就是重要的修改部分: 方法一: 修改“pch.h”和“dllmain.cpp”文件,可以參考以下博主鏈接,但博主的引用部分有些繁瑣,文末會介紹我的引用方法,和正常引用外部庫步驟是一樣的。這

    2023年04月09日
    瀏覽(21)
  • Unity——在C#中調(diào)用C++動態(tài)鏈接庫(DLL)

    Unity——在C#中調(diào)用C++動態(tài)鏈接庫(DLL)

    1、新建C++空項目 打開VS,新建一個C++空項目,自命名項目名稱與位置。 2、配置項目屬性為動態(tài)鏈接庫 右鍵項目,點擊屬性,打開項目屬性頁,將常規(guī)中的配置類型改為動態(tài)庫(.dll)。 ?3、添加.h頭文件 右鍵頭文件,點擊添加—新建項,選擇頭文件.h,命名為DllForUnity.h,點擊

    2024年02月10日
    瀏覽(20)
  • Python 使用 ctypes 調(diào)用 C/C++ DLL 動態(tài)鏈接庫

    Python 使用 ctypes 調(diào)用 C/C++ DLL 動態(tài)鏈接庫

    ctypes 有以下優(yōu)點: Python內(nèi)建,不需要單獨安裝 Python可以直接調(diào)用C/C++ 動態(tài)鏈接庫(.dll 或 .so) 在Python一側,不需要了解 c/c++ dll 內(nèi)部的工作方式 提供了 C/C++ 數(shù)據(jù)類型與Python類型的相互映射,以及轉(zhuǎn)換,包括指針類型。 ctypes 在下列場景可以發(fā)揮較大作用 運算量大的操作可以寫

    2024年02月06日
    瀏覽(19)
  • windows VS2015 Steup 打包發(fā)布軟件并附帶動態(tài)鏈接庫dll

    windows VS2015 Steup 打包發(fā)布軟件并附帶動態(tài)鏈接庫dll

    打包:? 方法一:VS 2015 Steup 打包發(fā)布軟件_檸檬野生菌的博客-CSDN博客_vs2015 exe發(fā)布 ?1、插件下載 Microsoft Visual Studio 2015 Installer Projects 工具-擴展與更新-聯(lián)機-搜索 Installer Projects 2、安裝 關掉VS 雙擊下載好的 .exe 安裝 3、打開VS新建Steup Project項目 注意項目名稱 需要跟你打包的

    2024年02月06日
    瀏覽(25)
  • [速成] Visual Studio C/C++創(chuàng)建Dll(動態(tài)鏈接庫)并調(diào)用

    [速成] Visual Studio C/C++創(chuàng)建Dll(動態(tài)鏈接庫)并調(diào)用

    以下示例均在VS2022環(huán)境下完成。 注意: _EXPORTING 是筆者 自定義宏 ,用于區(qū)分當前是導出dll還是調(diào)用dll,要實現(xiàn)導出函數(shù),還需要在實現(xiàn)Dll函數(shù)功能的 項目屬性 里,添加 預處理定義 (記得結尾加 分號 ),如下圖: _declspec(dllexport) 是VC的,表示 導出函數(shù) 到dll; _declspec(dllim

    2024年02月04日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包