社区
进程/线程/DLL
帖子详情
char* dll调用问题
houdongfeng
2007-06-16 10:57:00
VC dll中
char *tmp;
tmp = new char[13];
...
return tmp
调用中
char *rr;
strcpy(rr,icprint(2007,6,15));
执行到strcpy(rr,icprint(2007,6,15));就报错
怎么办
...全文
261
5
打赏
收藏
char* dll调用问题
VC dll中 char *tmp; tmp = new char[13]; ... return tmp 调用中 char *rr; strcpy(rr,icprint(2007,6,15)); 执行到strcpy(rr,icprint(2007,6,15));就报错 怎么办
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
houdongfeng
2007-06-18
打赏
举报
回复
还是不可以
houdongfeng
2007-06-16
打赏
举报
回复
typedef char* (*IC_OpenSession)(int ,int ,int);
// typedef int (STDMETHODCALLTYPE* IC_OpenSession)();
HINSTANCE gLib32_DLL;
IC_OpenSession icprint;
gLib32_DLL = LoadLibrary ("LUNARCALENDAR.dll");
// gLib32_DLL = LoadLibrary ("ICCInter.dll");
if (gLib32_DLL == NULL)
{
MessageBox("-1");
return;
}
//exit IC
icprint = (IC_OpenSession) GetProcAddress (gLib32_DLL,"Lunarcalendar");
// icprint = (IC_OpenSession) GetProcAddress (gLib32_DLL,"IC_OpenSession");
if (icprint == NULL)
{
FreeLibrary (gLib32_DLL);
MessageBox("-2");
}
else
MessageBox("0");
char *b = icprint(2007,6,15);
//...
delete[] b;
houdongfeng
2007-06-16
打赏
举报
回复
dll源代码
char* WINAPI Lunarcalendar(int li_year,int li_month,int li_day)
{
char *tmp;
tmp = new char[13];
const char *ChDay[] = {"*","初一","初二","初三","初四","初五",
"初六","初七","初八","初九","初十",
"十一","十二","十三","十四","十五",
"十六","十七","十八","十九","二十",
"廿一","廿二","廿三","廿四","廿五",
"廿六","廿七","廿八","廿九","三十"};
const char *ChMonth[] = {"*","正","二","三","四","五","六","七","八","九","十","十一","腊"};
int Spring_NY,Sun_NY,StaticDayCount;
int index,flag;
//Spring_NY 记录春节离当年元旦的天数。
//Sun_NY 记录阳历日离当年元旦的天数。
if( ((LunarCalendarTable[li_year-1901] & 0x0060) >> 5) == 1)
Spring_NY = (LunarCalendarTable[li_year-1901] & 0x001F) - 1;
else
Spring_NY = (LunarCalendarTable[li_year-1901] & 0x001F) - 1 + 31;
Sun_NY = MonthAdd[li_month-1] + li_day - 1;
if( (!(li_year % 4)) && (li_month > 2))
Sun_NY++;
//StaticDayCount记录大小月的天数 29 或30
//index 记录从哪个月开始来计算。
//flag 是用来对闰月的特殊处理。
//判断阳历日在春节前还是春节后
if (Sun_NY >= Spring_NY)//阳历日在春节后(含春节那天)
{
Sun_NY -= Spring_NY;
li_month = 1;
index = 1;
flag = 0;
if( ( LunarCalendarTable[li_year - 1901] & (0x80000 >> (index-1)) ) ==0)
StaticDayCount = 29;
else
StaticDayCount = 30;
while(Sun_NY >= StaticDayCount)
{
Sun_NY -= StaticDayCount;
index++;
if(li_month == ((LunarCalendarTable[li_year - 1901] & 0xF00000) >> 20) )
{
flag = ~flag;
if(flag == 0)
li_month++;
}
else
li_month++;
if( ( LunarCalendarTable[li_year - 1901] & (0x80000 >> (index-1)) ) ==0)
StaticDayCount=29;
else
StaticDayCount=30;
}
li_day = Sun_NY + 1;
}
else//阳历日在春节前
{
Spring_NY -= Sun_NY;
li_year--;
li_month = 12;
if ( ((LunarCalendarTable[li_year - 1901] & 0xF00000) >> 20) == 0)
index = 12;
else
index = 13;
flag = 0;
if( ( LunarCalendarTable[li_year - 1901] & (0x80000 >> (index-1)) ) ==0)
StaticDayCount = 29;
else
StaticDayCount = 30;
while(Spring_NY > StaticDayCount)
{
Spring_NY -= StaticDayCount;
index--;
if(flag == 0)
li_month--;
if(li_month == ((LunarCalendarTable[li_year - 1901] & 0xF00000) >> 20))
flag = ~flag;
if( ( LunarCalendarTable[li_year - 1901] & (0x80000 >> (index-1)) ) ==0)
StaticDayCount = 29;
else
StaticDayCount = 30;
}
li_day = StaticDayCount - Spring_NY + 1;
}
LunarCalendarDay |= li_day;
LunarCalendarDay |= (li_month << 6);
if(li_month == ((LunarCalendarTable[li_year - 1901] & 0xF00000) >> 20))
{
strcat(tmp,"闰");
strcat(tmp,ChMonth[(LunarCalendarDay & 0x3C0) >> 6]);
}
else
strcat(tmp,ChMonth[(LunarCalendarDay & 0x3C0) >> 6]);
strcat(tmp,"月");
strcat(tmp,ChDay[LunarCalendarDay & 0x3F]);
return tmp;
}
houdongfeng
2007-06-16
打赏
举报
回复
报错
Debug Error
Program: D:\App1\App1.exe
Module:
File: i386\chkesp.c
Line: 42
The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
luohongming
2007-06-16
打赏
举报
回复
char *rr;
strcpy(rr,icprint(2007,6,15));
rr还未分配内存,加rr=new char[???];memset(rr,0,???);
java用JNA
调用
dll
实例,包含各种参数
调用
实例中演示了各种参数形式的
DLL
函数
调用
,如:基本数据类型、基本数据类型的指针和引用、结构体、结构体的指针和引用、函数指针和回调函数、字符串指针、输入数组、输出数组等,非常实用。
c#
调用
C++的动态链接库
dll
,形参相关说明[const
char
*/
char
*/int]
在C#项目中
调用
C++生成的
dll
相关参数定义
调用
C++声明的如下 形参有
char
*、const
char
*、int 返回类型有
char
*、int extern "C" { #endif #if defined(_WIN32) # define __export __declspec(
dll
export) #elif defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && _
MySQL 数据类型和运算符
Re: MySQL 数据类型和运算符=============================# 数据类型 整数类型:五种 TINY SMALL MEDIUM INT BIG 浮点和定点小数类型:三种 FLOAT DOUBLE DECIMAL 日期与时间数据类型:五种 YEAR -1 字符串类型:二种
CHAR
(M) VAR
CHAR
(M) -1 二进制字符串:位字段BIT 固定BINARY 可变VARBINARY -1 # 运算符 算术 运算符 比较 运算符 逻辑 运算符 位操作 运算符 运算符的优先级-------------------------------------
C#
调用
Dll
char
* 参数
参数为
char
* 类型,编译生成.
dll
文件。
python
调用
c++
dll
返回的 const
char
*
C++ 为 const
char
* #pragma once #include <iostream> #define PYAPI _declspec(
dll
export) extern "C" { PYAPI const
char
* runCapture(
char
* ip, int port,
char
* username,
char
* password,
char
* channel, int preset,
char
* type,
char
* filepath); } python ir
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章