精易论坛

标题: 易语言和C++传递变量问题 [打印本页]

作者: wb92704    时间: 2025-5-15 23:48
标题: 易语言和C++传递变量问题
主要问题:易语言调用C++的DLL,传递参数不对

1、C++的dll里面定义了一个结构体ImVec4,然后一个函数test调用这个结构体。
[C++] 纯文本查看 复制代码
struct ImVec4
{
    float                                                     x, y, z, w;
    constexpr ImVec4() : x(0.0f), y(0.0f), z(0.0f), w(0.0f) { }
    constexpr ImVec4(float _x, float _y, float _z, float _w) : x(_x), y(_y), z(_z), w(_w) { }

};
#define EXPORT extern "C" __declspec (dllexport)

//这里声明函数

EXPORT void  test(const ImVec4 pos);

//函数 把接收到的数据打印出来看看
void  test(const ImVec4 pos) {
    TCHAR szBuffer[1024];
    LPCTSTR str = TEXT("X: %d, Y: %d, Z: %d, W: %d");
    wsprintf(szBuffer, str, pos.x, pos.y, pos.z, pos.w);
    ::MessageBox(NULL, szBuffer, TEXT("demo"), MB_OK);
}

2、易语言调用dll的test函数,但是传入后数据不对,怎么回事呢?
传入 ImVec4 (1.1, 2.1, 3.1, 4.1),dll打印出来的完全不一样。

DLL的工程文件和E源码已上传附件。

作者: IIIllIIl    时间: 2025-5-15 23:48
改好的           

Dll1.zip

4.45 MB, 下载次数: 7


作者: wb92704    时间: 2025-5-15 23:49
Dll1.zip (11.27 KB, 下载次数: 4)





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4