开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 12995|回复: 8
收起左侧

[C#源码] 第一个 c++生成DLL易语言调用程序

[复制链接]
结帖率:100% (33/33)
发表于 2022-2-4 17:25:54 | 显示全部楼层 |阅读模式   河南省商丘市

首先感谢 @福仔 给予的帮助

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
char* pjzf(char *ss);//声明程序

char* zupj(char *cur1, char *cur2, char *cur3);//声明程序

extern "C" __declspec(dllexport) char* _stdcall Add(int a);//这个程序好像可以不用声明



extern "C" __declspec(dllexport) char* _stdcall Add(int a)
{
        /*计算小时*/
       

       
        char *ss = (char*)malloc(3);
       
        int s = a / 3600; //计算有多少个小时

        char *sw = (char*)malloc(sizeof(s) +1);//声明变量 并分配大小 长度为s的长度加一

        _itoa(s, ss, 10);//把小时 整数型 转换成 char*
       
        sw = s < 10 ? pjzf(ss) : strcpy(sw, ss);//说明 如果 s 小于 10 调佣pjzf(ss) 函数否则 sw = ss
        /*计算分钟*/
        int f = (a % 3600) / 60;//计算有多少分钟

        _itoa(f, ss, 10);//把分钟 整数型 转换成 char*

        char *sf = (char*)malloc(3);//分钟的长度最多为2所以直接分配3个

        sf = f < 10 ? pjzf(ss) : strcpy(sf, ss);//和上面一样
       
        /*计算秒*/
        int m = a % 3600 % 60;//计算有多少秒

        _itoa(m, ss, 10);//把秒 整数型 转换成 char*
        char *sm = (char*)malloc(3);//秒的长度最多为2所以直接分配3个
        sm = m < 10 ? pjzf(ss) : strcpy(sm, ss);//和上面一样

       

        return  zupj(sw,sf,sm);//把时间串联到一起然后返回
}

  char* pjzf(char *ss) {
        char *sw = (char*)malloc(sizeof(ss) + 1);
        strcpy(sw, "0");
        strcat(sw, ss);

        return sw;
}

  char* zupj(char *cur1, char *cur2, char *cur3) {
          
          char *wb = (char*)malloc(sizeof(cur1) + sizeof(cur2) + sizeof(cur3) + 4);;

          strcpy(wb, cur1);
          strcat(wb, ":");

          strcat(wb, cur2);
          strcat(wb, ":");

          strcat(wb, cur3);

          return wb;



  }

发表于 2022-2-9 13:39:31 | 显示全部楼层   内蒙古自治区包头市
期待第二个 c++生成DLL易语言调用程序
回复 支持 反对

使用道具 举报

结帖率:100% (33/33)
 楼主| 发表于 2022-2-8 10:06:02 | 显示全部楼层   河南省商丘市
本帖最后由 吴亚杰 于 2022-2-8 10:51 编辑
福仔 发表于 2022-2-4 17:54
要不你还是使用c++的字符串吧
#include
我搞不定它

回复 支持 反对

使用道具 举报

结帖率:0% (0/2)
发表于 2022-2-5 14:53:39 | 显示全部楼层   贵州省遵义市
用惯了 易语言  的  到文本(),再用 C++ 字符处理 就是 痛苦, 有时 找字符转换出错问题就是 一天。
回复 支持 反对

使用道具 举报

结帖率:100% (33/33)
 楼主| 发表于 2022-2-5 09:38:43 | 显示全部楼层   河南省商丘市
福仔 发表于 2022-2-4 17:57
你连最基础的c字符串都弄不明白, 还有, 求助贴请发到求助区, 在这个板块发帖帮你解决问题后什么东西都没有. ...

我只是做一下是记录
回复 支持 反对

使用道具 举报

发表于 2022-2-4 19:05:33 | 显示全部楼层   山东省济南市
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 1 天

发表于 2022-2-4 17:57:51 | 显示全部楼层   美国
你连最基础的c字符串都弄不明白, 还有, 求助贴请发到求助区, 在这个板块发帖帮你解决问题后什么东西都没有..... 荣誉+1都没有

评分

参与人数 1精币 +1 收起 理由
重大开源 + 1 给你补补血

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 1 天

发表于 2022-2-4 17:55:08 | 显示全部楼层   美国
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 1 天

发表于 2022-2-4 17:54:16 | 显示全部楼层   美国
要不你还是使用c++的字符串吧
#include <string>

std::string wb;
字符串相加就 wb + "字符串"+"另一个字符串"+std::to_string(数值)+"其他文本"+文本变量;
size_t len = wb.size();
char* ret = (char*)malloc(len + 1);
strcpy(ret, wb.c_str());
return ret;
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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