将参数传递给DLL
pass parameters to dll?
我是C 的新手。我正在使用访问的项目调用DLL(由C 编译)。我想了解如何将参数传递到dll。
在访问中准备了DLL的输入数据,我们从访问中调用DLL。我们将" RunFunction"与我们要致电的DLL相关联。访问中的行调用DLL:
Results = RunFunction(Data.age, Data.calendar, Data.timesheet, Data.extra)
符合DLL的CPP代码:
double __stdcall RunFunction(double * iData, double(*iCalendar)[100], double(*iTimesheet)[100])
第一个问题,从CPP代码中,我发现 *IDATA(in C )实际上包含来自数据(访问中)的所有信息。为什么会发生?我认为只有数据。
第二个问题,访问中的运行功能具有四个输入参数,而C 只需三个,为什么不会引起任何问题?
首先,请考虑内部访问Data.age
的值可能在包含整个记录或其他结构的缓冲区内。因此,当一个值的地址以C 传递给您时,您可以探索相邻的地址并查看其中的内容。不要那样做!
第二,查看__stdcall
的工作方式。它是在C的早期设计的,当时根本没有检查功能论点!您可以在呼叫者侧的较少或更多参数传递,而不要弄乱堆栈。如果您通过额外的话,没什么大不了的。如果您退出一些,那么在功能中使用最右的名称将为垃圾值和 Witing 向它们提供各种问题,包括寄回返回地址。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用指向成员的指针将成员函数作为参数传递
- 如何将参数传递给正在使用模板的类
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 修改函数中的指针(将另一个指针作为参数传递)
- 如何将部分流作为参数传递
- 我正在开发服务器,ip作为参数传递不起作用
- 将成员函数指针作为参数传递给模板方法
- 如何在C++中将迭代器作为函数参数传递
- 将附加参数传递给使用 beast::bind_front_handler 调用的函数
- 如何将一个类的函数作为另一个类的另一个函数的参数传递
- 将参数传递为"const"的奇怪效果
- 如何在 c++ 中将函数作为参数传递?
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- 使用引用与指针将数组作为参数传递
- 如何将成员函数作为回调参数传递给需要"typedef-ed"自由函数指针的函数?
- 使用安全模式从DLL(通过(INTPTR)参数传递到该函数)获取char **
- 插件框架,参数传递,C ,DLL,GDI
- 将参数传递到dll C++中的函数
- 在 c 中编译 dll 时传递参数