Skip to content
  • 首页
  • 留言
  • 关于

Share the joys of programming and technology

LoadLibrary和GetProcAddress获取另一个项目中的函数

LoadLibrary和GetProcAddress获取另一个项目中的函数

2021年1月23日 liyanliang Comments 0 Comment
阅读次数: 107

Contents

      • 0.0.1 因为项目NGeoXData在项目NGeoXGPS之前编译,故通过加载dll的方法获取设计分析的Levels。
      • 0.0.2 (1)在项目NGeoXData中的CGPSDataMain.cpp中添加:
      • 0.0.3 (2)在项目NGeoXData中的CResultDataMain.h中添加:
      • 0.0.4 (3)在项目NGeoXData中的CResultDataMain.cpp中添加:
      • 0.0.5 扩展:
      • 0.0.6 使用Dependency Walker工具查看Dll是否编译该函数:
      • 0.0.7 (1)找到项目路径Dubug下的Win32文件夹中找到NGeoXGPS.dll,
      • 0.0.8 (2)查找GetDesignModelLevelsGlobal,若编译成功,会产生类似这样的函数:_GetDesignModelLevelsGlobal@0
  • 1 相关文章
因为项目NGeoXData在项目NGeoXGPS之前编译,故通过加载dll的方法获取设计分析的Levels。
(1)在项目NGeoXData中的CGPSDataMain.cpp中添加:
#include "HeaderPre.h"
EXTERN_C __MY_EXT_CLASS__ int GetDesignModelLevelsGlobal()
{
    if (!CGPSDataMain::GetInstance())
    {
        return 0;
    }
    CIntArray levelIndexArr;
    return CGPSDataMain::GetInstance()->GetDesignModelLevels(levelIndexArr);
}
#include "HeaderPost.h"
(2)在项目NGeoXData中的CResultDataMain.h中添加:
typedef int (*GetDesignModelLevelsFun)();
(3)在项目NGeoXData中的CResultDataMain.cpp中添加:
CTypedPtrArray ResultDrawingGPSArr;
HMODULE hXGPSHandle = ::LoadLibrary("NGeoXGPS.dll"); 
if (hXGPSHandle)
{
    FARPROC pFun = GetProcAddress(hXGPSHandle, "GetDesignModelLevelsGlobal");
    if (pFun)
    {
        GetDesignModelLevelsFun pGetFun = (GetDesignModelLevelsFun)pFun;
        int levelCount = pGetFun();
        CString strTitle;
        for (int iLevel = 0; iLevel < levelCount; iLevel++)
        {
            
        }
​
 <code data-enlighter-language="cpp" class="EnlighterJSRAW">   }
}</code>
​
扩展:
使用Dependency Walker工具查看Dll是否编译该函数:
(1)找到项目路径Dubug下的Win32文件夹中找到NGeoXGPS.dll,

将文件拖拽到Dependency Walker界面:

(2)查找GetDesignModelLevelsGlobal,若编译成功,会产生类似这样的函数:_GetDesignModelLevelsGlobal@0

相关文章

  • 设计模式-抽象工厂模式设计模式-抽象工厂模式
  • OpenGL实现billboard效果(CPU)OpenGL实现billboard效果(CPU)
  • 通过Spy++抓取窗口以查询对话框id通过Spy++抓取窗口以查询对话框id
  • Civil Designer开发-检测规范自动生成控制截面Civil Designer开发-检测规范自动生成控制截面
  • OpenGL模型加载-附源码OpenGL模型加载-附源码
  • Midas XD-选筋助手开发Midas XD-选筋助手开发

C++

Post navigation

PREVIOUS
通过Spy++抓取窗口以查询对话框id
NEXT
使用ODA数据库出现 “ODA_ASSUME”: 找不到标识符的错误

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

近期文章

  • Games101和Games202脑图汇总
  • LearnOpenGL脑图汇总
  • IBL计算总结
  • C++实现一个简单的语言解释器
  • OpenGL-法线贴图(Normal Mapping)
  • OpenGL-卡通着色(Cartoon)
  • OpenGL几何着色器实现贝塞尔曲线
  • WinDbg检查内存泄漏
  • OpenGL雾化效果实现-每像素雾化
  • OpenGL实现billboard效果(CPU)
  • 算法:寻找异常数字
  • OpenGL 几何着色器的应用
  • Midas XD-构件详图开发
  • Midas XD-选筋助手开发
  • Civil Designer开发-检测规范自动生成控制截面
  • Civil Designer开发-公路桥梁承载能力检算评定
  • Midas W-满堂支架快速建模助手开发
  • OpenGL绘制桥梁模型
  • Modern OpenGL绘制圆柱体
  • WordPress分页插件 – WP-PageNavi的使用(替换现有脚本)

全站热点

  • C++编写的情人节小程序 (1,578)
  • Modern OpenGL绘制圆柱体 (841)
  • 提取最小封闭区域 (804)
  • 截面特性计算程序-附源码 (621)
  • 判断一个点是否在闭合区域内 (607)
  • OpenGL绘制旋转立方体 (548)
  • OpenGL开发环境搭建-GLFW与GLAD配置 超详细 (529)
  • Midas XD [错误] 右侧挡土墙的最下端深度必须小于地基的最下端深度 (455)
  • WordPress分页插件 – WP-PageNavi的使用(替换现有脚本) (453)
  • 使用ODA数据库出现 “ODA_ASSUME”: 找不到标识符的错误 (386)
  • 土木想往土木软件开发方向发展,应该如何准备 (385)
  • Midas W-满堂支架快速建模助手开发 (383)
  • 从DLL中动态加载一个函数:LoadLibrary和GetProcAddress的使用 (360)
  • 两跨连续梁影响线绘制-附源码 (345)
  • #pragma message 编译时提示信息 (345)
  • midas XD2020的开发 (330)
  • 算法:寻找异常数字 (280)
  • OpenGL几何着色器实现贝塞尔曲线 (233)
  • OpenGL实现billboard效果(CPU) (216)
  • 通过Spy++抓取窗口以查询对话框id (210)

分类

  • C# (3)
  • C++ (17)
  • MFC (3)
  • ObjectARX (2)
  • OpenGL (11)
  • Revit开发 (1)
  • 学习笔记 (2)
  • 岩土 (2)
  • 算法 (1)
  • 结构设计 (7)
  • 职场生涯 (1)
  • 计算几何 (3)

归档

  • 2023年3月 (2)
  • 2022年10月 (1)
  • 2022年3月 (1)
  • 2022年2月 (1)
  • 2022年1月 (5)
  • 2021年11月 (7)
  • 2021年6月 (3)
  • 2021年5月 (2)
  • 2021年3月 (2)
  • 2021年2月 (8)
  • 2021年1月 (18)

标签

Bezier Curves BillBoard C++ CDN CivilDesigner DLL EasyX fog MFC Midas W Midas XD NormalMapping ObjectARX ODA OpenGL OpenXML Open XML PBR revit WinDbg 基坑设计 影响线 截面特性 桥梁 桥梁检测 桥梁设计 算法 计算几何 设计模式

书签

  • 李燕良的CSDN
  • 崔济东的博客
  • C++爱好者博客
  • 陈学伟的博客
  • 贾苏的博客
  • 陈睦锋的博客
  • 孙勇的博客

统计

  • 3
  • 381
  • 50
  • 58
  • 27
  • 94,751
  • 26,812

实时访问地域

© 2023   liyanliang.net Copyright. All Rights Reserved.