设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 无脑之人
打印 上一主题 下一主题

[有事请教] 关于平方根倒数速算法

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
11
发表于 2013-10-28 14:06:16 | 只看该作者
本帖最后由 yagami 于 2013-10-28 14:26 编辑
无脑之人 发表于 2013-10-28 12:56
难道是我打开的姿势不对? @yagami


姿势没啥问题 但是ruby好像不认f  我试了下 用f做参数就报错 重写了下函数接受和返回都用int就没问题了 但这样精度太差 所以我觉得 你可以把碰撞的逻辑也写在dll里 这些数学函数就在dll里内部使用 外部就写个碰撞函数   碰撞只要返回0 1就足矣了 这样还能提升效率 调用次数大大减少了
  1. #include <objbase.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int aaa()//内部函数不需要加前缀
  5. {
  6.         return 123;
  7. }

  8. extern "C"__declspec(dllexport)int test()//外部调用 要加extern "C"__declspec(dllexport) 就是表示C++的函数按C风格(涉及函数重载)并声明是外部可以调用的
  9. {
  10.         int a =aaa();
  11.         return a;
  12. }

  13. BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, void* lpReserved) //CTRL C CTRL V的东西

  14. {
  15.     HANDLE g_hModule;
  16.     switch(dwReason)
  17.     {
  18.     case DLL_PROCESS_ATTACH:
  19.        g_hModule = (HINSTANCE)hModule;
  20.        break;
  21.     case DLL_PROCESS_DETACH:
  22.        g_hModule=NULL;
  23.        break;
  24.     }
  25.     return true;
  26. }
复制代码
给你套写dll的模板 用vs2010 新建个win32 项目 选择dll 勾选空项目 套用上面的模板  你可以把.h 和.cpp分开写

点评

我回去下个VS看看好了  发表于 2013-10-28 22:14
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
12
发表于 2013-10-28 14:11:31 | 只看该作者
  1. #include <iostream>
  2. #include<Windows.h>
  3. using namespace std;
  4. typedef float(*Dllfun)(float);//注意参数 和返回值类型
  5. int main()
  6. {
  7.         HINSTANCE hdll;  
  8.         hdll=LoadLibrary("C:\\Users\\Administrator\\Desktop\\dlltest\\Debug\\maths.dll");
  9.         Dllfun test;
  10.         test=(Dllfun)GetProcAddress(hdll,"bsqrt");
  11.         cout<<test(9);
  12.         system("pause");
  13. }
复制代码
dll的正确性 你可以在c++里测试下 就用绝对路径好了

点评

调用是没问题。。不知道用什么机制和是否平衡了堆栈。。还是建议写了比较好……  发表于 2013-10-31 20:35
其实无脑之人之前那个LoadLibrary:maths.dll的问题是缺msvcr100d.dll。。。。  发表于 2013-10-31 20:07
RM的Win32API其实是按照__stdcall = WINAPI = CALLBACK = APIENTRY或者随便啥的一个约定。。不写貌似是有隐患的。。除非编译选项加上默认stdcall约定  发表于 2013-10-30 23:21
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

13
发表于 2013-10-28 17:21:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
560
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
14
发表于 2013-10-28 18:46:06 | 只看该作者
干脆写个平方根表(就是让自己的电脑慢一点,来获取正式发布时的快速
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 13:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表