VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1037|回复: 11

C++ 编译动态链接库时出错,求助!谢谢

[复制链接]

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-30 11:40:02 | 显示全部楼层 |阅读模式
头文件
// myTime.h
__declspec(dllexport) void Func1();
__declspec(dllexport) void Func2();
__declspec(dllexport) bool timeCompare(string time1,string time2);


cpp;
// myTime.cpp
#include "myTime.h"
#include <string>
//#include <iostream>
void Func1() {
//  std::cout << "Tsinghua\n";
}
void Func2() {
//  std::cout << "C++ OOP\n";
}
bool timeCompare(string time1,string time2){
        //比较两个string类的时间大小
        int time1Lenth = time1.size();
        int time2Lenth = time2.size();

        if(time1Lenth > time2Lenth){
                for(int i=0;i<time1Lenth - time2Lenth; i++)
                        if (time1[i] != '0')
                                return true;
        }

        if(time1Lenth < time2Lenth){
                for(int i=0;i<time1Lenth - time2Lenth; i++)
                        if (time2[i] != '0')
                                return false;
        }

        if(time1Lenth == time2Lenth){
                for(int i=0;i< time1Lenth ;i++){
                        if(time1[i] > time2[i])
                                return true;
                        if(time1[i] < time2[i])
                                return false;

                }
                if(time1[time1Lenth-1]==time2[time2Lenth-1])
                        return true;
                return false;

        }
        return false;
}
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-6 17:15:01 | 显示全部楼层
function definition的时候也需要加上__declspec(dllexport)
回复

使用道具 举报

0

主题

55

帖子

44.00

积分

新手上路

Rank: 1

积分
44.00
发表于 2020-3-6 20:30:02 | 显示全部楼层
啥错?
你用了string作为参数,必须使用扩展dll模式。而且无法跨编译器使用这个dll。
改用char *
回复

使用道具 举报

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-3-11 13:45:01 | 显示全部楼层
改用char*变动很大,函数也得改
我是初学,请高手给出点具体的回答
回复

使用道具 举报

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-3-11 14:30:01 | 显示全部楼层
能否帮我编译通过
回复

使用道具 举报

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-3-11 23:45:01 | 显示全部楼层
superandy
string 和char*怎么转换
回复

使用道具 举报

0

主题

55

帖子

44.00

积分

新手上路

Rank: 1

积分
44.00
发表于 2020-3-12 22:30:02 | 显示全部楼层
bool timeCompare(char * time1_c,char * time2_c){
string time1(time1_c), time2(time2_c);
即可
回复

使用道具 举报

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-3-16 14:45:01 | 显示全部楼层
string转化为char * 呢?
回复

使用道具 举报

0

主题

55

帖子

44.00

积分

新手上路

Rank: 1

积分
44.00
发表于 2020-3-16 18:00:01 | 显示全部楼层
time1.c_str()
回复

使用道具 举报

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-3-17 12:30:01 | 显示全部楼层
superandy 报错了
Mybank.cpp(128) : error C2664: 'timeCompare' : cannot convert parameter 1 from '
const char *' to 'char *'
        Conversion loses qualifiers


我是想把原来string的改为char*类
调用的是后 把string 的 time1 和 time2 改为 char*类

if(timeCompare(cos.begin.c_str(),readyTime.c_str()))

谢谢

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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