JavaScript调c,JavaScript 回调

JavaScript改写为C

MFC里面有个CTime类,你可以拿来直接用

创新互联-专业网站定制、快速模板网站建设、高性价比梁子湖网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式梁子湖网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖梁子湖地区。费用合理售后完善,10余年实体公司更值得信赖。

#include time.h

#include assert.h

#include stdio.h

class CTimeSpan

{

public:

CTimeSpan() throw();

CTimeSpan( __time64_t time ) throw();

CTimeSpan( long lDays, int nHours, int nMins, int nSecs ) throw();

__int64 GetDays() const throw();

__int64 GetTotalHours() const throw();

long GetHours() const throw();

__int64 GetTotalMinutes() const throw();

long GetMinutes() const throw();

__int64 GetTotalSeconds() const throw();

long GetSeconds() const throw();

__time64_t GetTimeSpan() const throw();

CTimeSpan operator+( CTimeSpan span ) const throw();

CTimeSpan operator-( CTimeSpan span ) const throw();

CTimeSpan operator+=( CTimeSpan span ) throw();

CTimeSpan operator-=( CTimeSpan span ) throw();

bool operator==( CTimeSpan span ) const throw();

bool operator!=( CTimeSpan span ) const throw();

bool operator( CTimeSpan span ) const throw();

bool operator( CTimeSpan span ) const throw();

bool operator=( CTimeSpan span ) const throw();

bool operator=( CTimeSpan span ) const throw();

private:

__time64_t m_timeSpan;

};

inline CTimeSpan::CTimeSpan() throw() : 

m_timeSpan(0)

{

}

inline CTimeSpan::CTimeSpan( __time64_t time ) throw() : 

m_timeSpan( time )

{

}

inline CTimeSpan::CTimeSpan(long lDays, int nHours, int nMins, int nSecs) throw()

{

m_timeSpan = nSecs + 60* (nMins + 60* (nHours + __int64(24) * lDays));

}

inline __int64 CTimeSpan::GetDays() const throw()

{

return( m_timeSpan/(24*3600) );

}

inline __int64 CTimeSpan::GetTotalHours() const throw()

{

return( m_timeSpan/3600 );

}

inline long CTimeSpan::GetHours() const throw()

{

return( long( GetTotalHours()-(GetDays()*24) ) );

}

inline __int64 CTimeSpan::GetTotalMinutes() const throw()

{

return( m_timeSpan/60 );

}

inline long CTimeSpan::GetMinutes() const throw()

{

return( long( GetTotalMinutes()-(GetTotalHours()*60) ) );

}

inline __int64 CTimeSpan::GetTotalSeconds() const throw()

{

return( m_timeSpan );

}

inline long CTimeSpan::GetSeconds() const throw()

{

return( long( GetTotalSeconds()-(GetTotalMinutes()*60) ) );

}

inline __time64_t CTimeSpan::GetTimeSpan() const throw()

{

return( m_timeSpan );

}

inline CTimeSpan CTimeSpan::operator+( CTimeSpan span ) const throw()

{

return( CTimeSpan( m_timeSpan+span.m_timeSpan ) );

}

inline CTimeSpan CTimeSpan::operator-( CTimeSpan span ) const throw()

{

return( CTimeSpan( m_timeSpan-span.m_timeSpan ) );

}

inline CTimeSpan CTimeSpan::operator+=( CTimeSpan span ) throw()

{

m_timeSpan += span.m_timeSpan;

return( *this );

}

inline CTimeSpan CTimeSpan::operator-=( CTimeSpan span ) throw()

{

m_timeSpan -= span.m_timeSpan;

return( *this );

}

inline bool CTimeSpan::operator==( CTimeSpan span ) const throw()

{

return( m_timeSpan == span.m_timeSpan );

}

inline bool CTimeSpan::operator!=( CTimeSpan span ) const throw()

{

return( m_timeSpan != span.m_timeSpan );

}

inline bool CTimeSpan::operator( CTimeSpan span ) const throw()

{

return( m_timeSpan  span.m_timeSpan );

}

inline bool CTimeSpan::operator( CTimeSpan span ) const throw()

{

return( m_timeSpan  span.m_timeSpan );

}

inline bool CTimeSpan::operator=( CTimeSpan span ) const throw()

{

return( m_timeSpan = span.m_timeSpan );

}

inline bool CTimeSpan::operator=( CTimeSpan span ) const throw()

{

return( m_timeSpan = span.m_timeSpan );

}

class CTime

{

public:

static CTime __stdcall GetCurrentTime() throw();

CTime() throw();

CTime( __time64_t time ) throw();

CTime( int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec,

int nDST = -1 );

CTime( unsigned short wDosDate, unsigned short wDosTime, int nDST = -1 );

CTime operator=( __time64_t time ) throw();

CTime operator+=( CTimeSpan span ) throw();

CTime operator-=( CTimeSpan span ) throw();

CTimeSpan operator-( CTime time ) const throw();

CTime operator-( CTimeSpan span ) const throw();

CTime operator+( CTimeSpan span ) const throw();

bool operator==( CTime time ) const throw();

bool operator!=( CTime time ) const throw();

bool operator( CTime time ) const throw();

bool operator( CTime time ) const throw();

bool operator=( CTime time ) const throw();

bool operator=( CTime time ) const throw();

struct tm* GetGmtTm( struct tm* ptm ) const;

struct tm* GetLocalTm( struct tm* ptm ) const;

__time64_t GetTime() const throw();

int GetYear() const throw();

int GetMonth() const throw();

int GetDay() const throw();

int GetHour() const throw();

int GetMinute() const throw();

int GetSecond() const throw();

int GetDayOfWeek() const throw();

private:

__time64_t m_time;

};

inline CTime __stdcall CTime::GetCurrentTime() throw()

{

return( CTime( ::_time64( NULL ) ) );

}

inline CTime::CTime() throw() : 

m_time(0)

{

}

inline CTime::CTime( __time64_t time ) throw(): 

m_time( time )

{

}

inline CTime::CTime(int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec,

int nDST)

{

#pragma warning (push)

#pragma warning (disable: 4127) // conditional expression constant

assert( nYear = 1900 );

assert( nMonth = 1  nMonth = 12 );

assert( nDay = 1  nDay = 31 );

assert( nHour = 0  nHour = 23 );

assert( nMin = 0  nMin = 59 );

assert( nSec = 0  nSec = 59 );

#pragma warning (pop)

struct tm atm;

atm.tm_sec = nSec;

atm.tm_min = nMin;

atm.tm_hour = nHour;

atm.tm_mday = nDay;

atm.tm_mon = nMonth - 1; // tm_mon is 0 based

atm.tm_year = nYear - 1900; // tm_year is 1900 based

atm.tm_isdst = nDST;

m_time = _mktime64(atm);

assert(m_time != -1); // indicates an illegal input time

}

inline CTime::CTime(unsigned short wDosDate, unsigned short wDosTime, int nDST)

{

struct tm atm;

atm.tm_sec = (wDosTime  ~0xFFE0)  1;

atm.tm_min = (wDosTime  ~0xF800)  5;

atm.tm_hour = wDosTime  11;

atm.tm_mday = wDosDate  ~0xFFE0;

atm.tm_mon = ((wDosDate  ~0xFE00)  5) - 1;

atm.tm_year = (wDosDate  9) + 80;

atm.tm_isdst = nDST;

m_time = _mktime64(atm);

assert(m_time != -1); // indicates an illegal input time

}

inline CTime CTime::operator=( __time64_t time ) throw()

{

m_time = time;

return( *this );

}

inline CTime CTime::operator+=( CTimeSpan span ) throw()

{

m_time += span.GetTimeSpan();

return( *this );

}

inline CTime CTime::operator-=( CTimeSpan span ) throw()

{

m_time -= span.GetTimeSpan();

return( *this );

}

inline CTimeSpan CTime::operator-( CTime time ) const throw()

{

return( CTimeSpan( m_time-time.m_time ) );

}

inline CTime CTime::operator-( CTimeSpan span ) const throw()

{

return( CTime( m_time-span.GetTimeSpan() ) );

}

inline CTime CTime::operator+( CTimeSpan span ) const throw()

{

return( CTime( m_time+span.GetTimeSpan() ) );

}

inline bool CTime::operator==( CTime time ) const throw()

{

return( m_time == time.m_time );

}

inline bool CTime::operator!=( CTime time ) const throw()

{

return( m_time != time.m_time );

}

inline bool CTime::operator( CTime time ) const throw()

{

return( m_time  time.m_time );

}

inline bool CTime::operator( CTime time ) const throw()

{

return( m_time  time.m_time );

}

inline bool CTime::operator=( CTime time ) const throw()

{

return( m_time = time.m_time );

}

inline bool CTime::operator=( CTime time ) const throw()

{

return( m_time = time.m_time );

}

inline struct tm* CTime::GetGmtTm(struct tm* ptm) const

{

// Ensure ptm is valid

assert( ptm != NULL );

if (ptm != NULL)

{

struct tm ptmTemp;

errno_t err = _gmtime64_s(ptmTemp, m_time);

// Be sure the call succeeded

if(err != 0) { return NULL; }

*ptm = ptmTemp;

return ptm;

}

return NULL;

}

inline struct tm* CTime::GetLocalTm(struct tm* ptm) const

{

// Ensure ptm is valid

assert( ptm != NULL );

if (ptm != NULL)

{

struct tm ptmTemp;

errno_t err = _localtime64_s(ptmTemp, m_time);

if (err != 0)

{

return NULL; // indicates that m_time was not initialized!

}

*ptm = ptmTemp;

return ptm;

}

return NULL;

}

inline __time64_t CTime::GetTime() const throw()

{

return( m_time );

}

inline int CTime::GetYear() const

struct tm ttm;

struct tm * ptm;

ptm = GetLocalTm(ttm);

return ptm ? (ptm-tm_year) + 1900 : 0 ; 

}

inline int CTime::GetMonth() const

struct tm ttm;

struct tm * ptm;

ptm = GetLocalTm(ttm);

return ptm ? ptm-tm_mon + 1 : 0;

}

inline int CTime::GetDay() const

{

struct tm ttm;

struct tm * ptm;

ptm = GetLocalTm(ttm);

return ptm ? ptm-tm_mday : 0 ; 

}

inline int CTime::GetHour() const

{

struct tm ttm;

struct tm * ptm;

ptm = GetLocalTm(ttm);

return ptm ? ptm-tm_hour : -1 ; 

}

inline int CTime::GetMinute() const

{

struct tm ttm;

struct tm * ptm;

ptm = GetLocalTm(ttm);

return ptm ? ptm-tm_min : -1 ; 

}

inline int CTime::GetSecond() const

struct tm ttm;

struct tm * ptm;

ptm = GetLocalTm(ttm);

return ptm ? ptm-tm_sec : -1 ;

}

inline int CTime::GetDayOfWeek() const

struct tm ttm;

struct tm * ptm;

ptm = GetLocalTm(ttm);

return ptm ? ptm-tm_wday + 1 : 0 ;

}

void date()

{

CTime together = CTime(2013, 6, 22, 12, 30, 30);

CTime now = CTime::GetCurrentTime();

CTimeSpan left=now-together;

printf("%ld天",left.GetDays());

printf("%02ld时",left.GetHours());

printf("%02ld分",left.GetMinutes());

printf("%02ld秒",left.GetSeconds());

}

void main()

{

date();

}

js如何调用c语言写的api

包含api的.h文件,然后直接调用就可以了,比如winsock.h,可以调用recv等函数,也可以在函数前面加::

答案补充

HWND hWnd = ::FindWindow(sClassName, sWindowName);//传入类明到sClassName,窗口名sWindowName,否则传入NULL

在网页编程语言javascript 中能否调用一段C/C++的代码?

你可以这样,把你的C++代码做成COM组件,然后在asp就可以调用了. 在asp里实现的一些特殊功能一般都是通过COM来实现的

javascript 语言有没有办法调用C语言写的函数?谢了.

个人感觉:不可能。。你的想法也太夸张了,javascript 是用于网页上的,我还听说C可以。。。

如何在 JavaScript 中使用 C 程序

我自己建了个java类名叫account在calculator.bean包中,通过import="calculator.bean.account"引入JSP页面了,怎样在JavaScript中调用account里的方法jisuan()?

用var a=new account然后a.jisuan()貌似不行啊?

静待高手指教,越简单越好!

本文标题:JavaScript调c,JavaScript 回调
标题链接:https://www.cdcxhl.com/article0/dsihsio.html

成都网站建设公司_创新互联,为您提供响应式网站软件开发移动网站建设标签优化商城网站电子商务

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设