• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ CONCAT函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中CONCAT函数的典型用法代码示例。如果您正苦于以下问题:C++ CONCAT函数的具体用法?C++ CONCAT怎么用?C++ CONCAT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了CONCAT函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: CONCAT

static unsigned MY_TYPE_T CONCAT(libbf_compute_expr_,MY_TYPE_T_STR) (Expression* expr, unsigned MY_TYPE_T* data_ptr)
{
  switch(expr->e_type)
  {
    case EXPR_CONSTANT:
      return expr->e_constant;
      break;
      
    case EXPR_DATA:
      return data_ptr[expr->e_offset];
      break;
      
    case EXPR_ADD:
      return CONCAT(libbf_compute_expr_,MY_TYPE_T_STR)(expr->e_expr1, data_ptr) +
             CONCAT(libbf_compute_expr_,MY_TYPE_T_STR)(expr->e_expr2, data_ptr);
      break;
      
    case EXPR_MUL:
      return CONCAT(libbf_compute_expr_,MY_TYPE_T_STR)(expr->e_expr1, data_ptr) *
             CONCAT(libbf_compute_expr_,MY_TYPE_T_STR)(expr->e_expr2, data_ptr);
      break;

    default:
      SHOULDNT_HAPPEN();
      return 0;
      break;
  }
}
开发者ID:2lost4u,项目名称:libbf,代码行数:28,代码来源:libbf_interpreter_optimizer.c


示例2: BitBangSPI_Send_Byte

/*============================================================================
Name    :   BitBangSPI_Send_Byte
------------------------------------------------------------------------------
Purpose :   Send and Read one byte using BitBangSPI Interface
Input   :   Data to send to slave
Output  :   Data read from slave
Notes   :	Called from BitBangSPI_Send_Message in this file
============================================================================*/
uint8_t BitBangSPI_Send_Byte(uint8_t c)
{
    unsigned bit;
    for (bit = 0; bit < 8; bit++) {
        /* write MOSI on trailing edge of previous clock */
        if (c & 0x80)
            CONCAT( PORT, SPI_BB_MOSI, _OUTSET) =  ( 1 << MOSI_BB );
        else
            CONCAT( PORT, SPI_BB_MOSI, _OUTCLR) =  ( 1 << MOSI_BB );

        c <<= 1;

        /* half a clock cycle before leading/rising edge */
        DELAYUS(1);

        CONCAT( PORT, SPI_BB_SCK, _OUTSET) = (1 << SCK_BB );

        /* half a clock cycle before trailing/falling edge */
        DELAYUS(1);

        /* read MISO on trailing edge */
        c |= ((CONCAT( PORT, SPI_BB_MISO, _IN) >> MISO_BB) & 0x01);
        CONCAT( PORT, SPI_BB_SCK, _OUTCLR) = (1 << SCK_BB );
    }

    CONCAT( PORT, SPI_BB_MOSI, _OUTCLR) =  ( 1 << MOSI_BB );

    DELAYUS(50);

    return c;
}
开发者ID:GordonMcGregor,项目名称:luminous,代码行数:39,代码来源:BitBangSPI_Master.c


示例3: concat_unlock

static int concat_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
{
	struct mtd_concat *concat = CONCAT(mtd);
	int i, err = 0;

	for (i = 0; i < concat->num_subdev; i++) {
		struct mtd_info *subdev = concat->subdev[i];
		uint64_t size;

		if (ofs >= subdev->size) {
			size = 0;
			ofs -= subdev->size;
			continue;
		}
		if (ofs + len > subdev->size)
			size = subdev->size - ofs;
		else
			size = len;

		err = mtd_unlock(subdev, ofs, size);
		if (err)
			break;

		len -= size;
		if (len == 0)
			break;

		err = -EINVAL;
		ofs = 0;
	}

	return err;
}
开发者ID:Noltari,项目名称:u-boot,代码行数:33,代码来源:mtdconcat.c


示例4: concat_block_isbad

static int concat_block_isbad(struct mtd_info *mtd, loff_t ofs)
{
    struct mtd_concat *concat = CONCAT(mtd);
    int i, res = 0;

    if (!concat->subdev[0]->block_isbad)
        return res;

    if (ofs > mtd->size)
        return -EINVAL;

    for (i = 0; i < concat->num_subdev; i++) {
        struct mtd_info *subdev = concat->subdev[i];

        if (ofs >= subdev->size) {
            ofs -= subdev->size;
            continue;
        }

        res = subdev->block_isbad(subdev, ofs);
        break;
    }

    return res;
}
开发者ID:274914765,项目名称:C,代码行数:25,代码来源:mtdconcat.c


示例5: concat_block_markbad

static int concat_block_markbad(struct mtd_info *mtd, loff_t ofs)
{
    struct mtd_concat *concat = CONCAT(mtd);
    int i, err = -EINVAL;

    if (!concat->subdev[0]->block_markbad)
        return 0;

    if (ofs > mtd->size)
        return -EINVAL;

    for (i = 0; i < concat->num_subdev; i++) {
        struct mtd_info *subdev = concat->subdev[i];

        if (ofs >= subdev->size) {
            ofs -= subdev->size;
            continue;
        }

        err = subdev->block_markbad(subdev, ofs);
        if (!err)
            mtd->ecc_stats.badblocks++;
        break;
    }

    return err;
}
开发者ID:274914765,项目名称:C,代码行数:27,代码来源:mtdconcat.c


示例6: mtd_concat_destroy

void mtd_concat_destroy(struct mtd_info *mtd)
{
    struct mtd_concat *concat = CONCAT(mtd);
    if (concat->mtd.numeraseregions)
        kfree(concat->mtd.eraseregions);
    kfree(concat);
}
开发者ID:274914765,项目名称:C,代码行数:7,代码来源:mtdconcat.c


示例7: concat_get_unmapped_area

/*
 * try to support NOMMU mmaps on concatenated devices
 * - we don't support subdev spanning as we can't guarantee it'll work
 */
static unsigned long concat_get_unmapped_area(struct mtd_info *mtd,
					      unsigned long len,
					      unsigned long offset,
					      unsigned long flags)
{
	struct mtd_concat *concat = CONCAT(mtd);
	int i;

	for (i = 0; i < concat->num_subdev; i++) {
		struct mtd_info *subdev = concat->subdev[i];

		if (offset >= subdev->size) {
			offset -= subdev->size;
			continue;
		}

		/* we've found the subdev over which the mapping will reside */
		if (offset + len > subdev->size)
			return (unsigned long) -EINVAL;

		if (subdev->get_unmapped_area)
			return subdev->get_unmapped_area(subdev, len, offset,
							 flags);

		break;
	}

	return (unsigned long) -ENOSYS;
}
开发者ID:Aaroneke,项目名称:galaxy-2636,代码行数:33,代码来源:mtdconcat.c


示例8: ut_read_os_version_index

/* Writes to ut_os_version_index a zero-based index identifying the OS version and HW model.
 * Also sets up the syscalls table.
 * Should be called only once.
 * May be used for OS-specific arrays of constants (marked with "// OS-specific"). */
void ut_read_os_version_index(void) {
	#if defined STAGE1
			sc_addrs_ptr = CONCAT(CONCAT(CONCAT(syscalls_light_, MODEL), _), OS_VERSION);
	switch (*(unsigned*)(OS_BASE_ADDRESS + 0x20)) {
		// OS-specific
		case 0x102F0FA0:  // 3.1.0 non-CAS
			ut_os_version_index = 0;
			break;
		case 0x102F16D0:  // 3.1.0 CAS
			ut_os_version_index = 1;
			break;
		case 0x102F0A10:  // 3.1.0 non-CAS CX
			ut_os_version_index = 2;
			break;
		case 0x102F11A0:  // 3.1.0 CAS CX
			ut_os_version_index = 3;
			break;
	}
	#else
	/* The heuristic is based on the address of INT_Initialize - Thanks Goplat.
	 * The address is read from the RAM copy and not the real vector which is
	 * destroyed at installation time */
	switch (*(unsigned*)(OS_BASE_ADDRESS + 0x20)) {
		// OS-specific
		case 0x102F0FA0:  // 3.1.0 non-CAS
			ut_os_version_index = 0;
			sc_addrs_ptr = syscalls_ncas_3_1_0;
			break;
		case 0x102F16D0:  // 3.1.0 CAS
			ut_os_version_index = 1;
			sc_addrs_ptr = syscalls_cas_3_1_0;
			break;
		case 0x102F0A10:  // 3.1.0 non-CAS CX
			ut_os_version_index = 2;
			sc_addrs_ptr = syscalls_ncascx_3_1_0;
			break;
		case 0x102F11A0:  // 3.1.0 CAS CX
			ut_os_version_index = 3;
			sc_addrs_ptr = syscalls_cascx_3_1_0;
			break;
		default:
			ut_panic("v?");
	}
	#endif
}
开发者ID:p0wer0n,项目名称:ndless,代码行数:49,代码来源:utils.c


示例9: SPI_Master_Init

/*============================================================================
Name    :   SPI_Master_Init
------------------------------------------------------------------------------
Purpose :   Initialize SPI Interface
Input   :   n/a
Output  :   n/a
Notes   :	Called from QDebug_Init in QDebug.c
============================================================================*/
void SPI_Master_Init (void)
{
    // MOSI, SCK and SS are outputs. Pullup on MISO
    //SPI_DDR |= (1<<SS) | (1<<MOSI) | (1<<SCK) ;
    CONCAT( PORT, SPI_SS, _DIR) =  (1<<SS) | (1<<MOSI) | (1<<SCK) ;

    //SPI_DDR &=~(1<<MISO);
    CONCAT( PORT, SPI_SS, _DIR) &=~(1<<MISO);

   //SPI_PORT &=~ ((1<<SS) | (1<<SCK) | (1<<MOSI)) ;
    CONCAT( PORT, SPI_SS, _OUT)  &=~ ((1<<SS) | (1<<SCK) | (1<<MOSI)) ;

	//SPI_PORT |= (1<<MISO);
    CONCAT( PORT, SPI_SS, _OUT) |= (1<<MISO);

  	SPIC_CTRL = (1<<SPI_ENABLE_bp) | (1<<SPI_MASTER_bp) |
		(0<<SPI_PRESCALER1_bp)|(1<<SPI_PRESCALER0_bp);
}
开发者ID:GordonMcGregor,项目名称:luminous,代码行数:26,代码来源:SPI_Master.c


示例10: concat_read_ecc

static int
concat_read_ecc(struct mtd_info *mtd, loff_t from, size_t len,
                size_t * retlen, u_char * buf, u_char * eccbuf,
                struct nand_oobinfo *oobsel)
{
    struct mtd_concat *concat = CONCAT(mtd);
    int err = -EINVAL;
    int i;

    *retlen = 0;

    for (i = 0; i < concat->num_subdev; i++) {
        struct mtd_info *subdev = concat->subdev[i];
        size_t size, retsize;

        if (from >= subdev->size) {
            /* Not destined for this subdev */
            size = 0;
            from -= subdev->size;
            continue;
        }

        if (from + len > subdev->size)
            /* First part goes into this subdev */
            size = subdev->size - from;
        else
            /* Entire transaction goes into this subdev */
            size = len;

        if (subdev->read_ecc)
            err = subdev->read_ecc(subdev, from, size,
                                   &retsize, buf, eccbuf, oobsel);
        else
            err = -EINVAL;

        if (err)
            break;

        *retlen += retsize;
        len -= size;
        if (len == 0)
            break;

        err = -EINVAL;
        buf += size;
        if (eccbuf) {
            eccbuf += subdev->oobsize;
            /* in nand.c at least, eccbufs are
               tagged with 2 (int)eccstatus'; we
               must account for these */
            eccbuf += 2 * (sizeof (int));
        }
        from = 0;
    }
    return err;
}
开发者ID:jhbsz,项目名称:MI424WR_GEN2_Rev_E-F,代码行数:56,代码来源:mtdconcat.c


示例11: concat_read_oob

static int
concat_read_oob(struct mtd_info *mtd, loff_t from, struct mtd_oob_ops *ops)
{
    struct mtd_concat *concat = CONCAT(mtd);
    struct mtd_oob_ops devops = *ops;
    int i, err, ret = 0;

    ops->retlen = ops->oobretlen = 0;

    for (i = 0; i < concat->num_subdev; i++) {
        struct mtd_info *subdev = concat->subdev[i];

        if (from >= subdev->size) {
            from -= subdev->size;
            continue;
        }

        /* partial read ? */
        if (from + devops.len > subdev->size)
            devops.len = subdev->size - from;

        err = subdev->read_oob(subdev, from, &devops);
        ops->retlen += devops.retlen;
        ops->oobretlen += devops.oobretlen;

        /* Save information about bitflips! */
        if (unlikely(err)) {
            if (err == -EBADMSG) {
                mtd->ecc_stats.failed++;
                ret = err;
            } else if (err == -EUCLEAN) {
                mtd->ecc_stats.corrected++;
                /* Do not overwrite -EBADMSG !! */
                if (!ret)
                    ret = err;
            } else
                return err;
        }

        if (devops.datbuf) {
            devops.len = ops->len - ops->retlen;
            if (!devops.len)
                return ret;
            devops.datbuf += devops.retlen;
        }
        if (devops.oobbuf) {
            devops.ooblen = ops->ooblen - ops->oobretlen;
            if (!devops.ooblen)
                return ret;
            devops.oobbuf += ops->oobretlen;
        }

        from = 0;
    }
    return -EINVAL;
}
开发者ID:274914765,项目名称:C,代码行数:56,代码来源:mtdconcat.c


示例12: concat_resume

static void concat_resume(struct mtd_info *mtd)
{
    struct mtd_concat *concat = CONCAT(mtd);
    int i;

    for (i = 0; i < concat->num_subdev; i++) {
        struct mtd_info *subdev = concat->subdev[i];
        subdev->resume(subdev);
    }
}
开发者ID:274914765,项目名称:C,代码行数:10,代码来源:mtdconcat.c


示例13: concat_read

static int
concat_read(struct mtd_info *mtd, loff_t from, size_t len,
	    size_t * retlen, u_char * buf)
{
	struct mtd_concat *concat = CONCAT(mtd);
	int ret = 0, err;
	int i;

#ifdef __UBOOT__
	*retlen = 0;
#endif

	for (i = 0; i < concat->num_subdev; i++) {
		struct mtd_info *subdev = concat->subdev[i];
		size_t size, retsize;

		if (from >= subdev->size) {
			/* Not destined for this subdev */
			size = 0;
			from -= subdev->size;
			continue;
		}
		if (from + len > subdev->size)
			/* First part goes into this subdev */
			size = subdev->size - from;
		else
			/* Entire transaction goes into this subdev */
			size = len;

		err = mtd_read(subdev, from, size, &retsize, buf);

		/* Save information about bitflips! */
		if (unlikely(err)) {
			if (mtd_is_eccerr(err)) {
				mtd->ecc_stats.failed++;
				ret = err;
			} else if (mtd_is_bitflip(err)) {
				mtd->ecc_stats.corrected++;
				/* Do not overwrite -EBADMSG !! */
				if (!ret)
					ret = err;
			} else
				return err;
		}

		*retlen += retsize;
		len -= size;
		if (len == 0)
			return ret;

		buf += size;
		from = 0;
	}
	return -EINVAL;
}
开发者ID:Noltari,项目名称:u-boot,代码行数:55,代码来源:mtdconcat.c


示例14: BitBangSPI_Master_Init

/*============================================================================
Name    :   BitBangSPI_Master_Init
------------------------------------------------------------------------------
Purpose :   Initialize BitBangSPI Interface
Input   :   n/a
Output  :   n/a
Notes   :	Called from QDebug_Init in QDebug.c
============================================================================*/
void BitBangSPI_Master_Init (void)
{
    CONCAT( PORT, SPI_BB_SS, _DIRSET) =  ((1<<SS_BB));
    CONCAT( PORT, SPI_BB_MOSI, _DIRSET) =  (( 1 << MOSI_BB ));
    CONCAT( PORT, SPI_BB_SCK, _DIRSET) =  (( 1 << SCK_BB ));

    CONCAT( PORT, SPI_BB_MISO, _DIRCLR) =  ( 1 << MISO_BB );

    CONCAT( PORT, SPI_BB_SS, _OUTCLR) =  ((1<<SS_BB));
    CONCAT( PORT, SPI_BB_MOSI, _OUTCLR) =  (( 1 << MOSI_BB ));
    CONCAT( PORT, SPI_BB_SCK, _OUTCLR) =  (( 1 << SCK_BB ));
    CONCAT( PORT, SPI_BB_MISO, _OUTSET) =  ( 1 << MISO_BB );
}
开发者ID:GordonMcGregor,项目名称:luminous,代码行数:21,代码来源:BitBangSPI_Master.c


示例15: concat_suspend

static int concat_suspend(struct mtd_info *mtd)
{
    struct mtd_concat *concat = CONCAT(mtd);
    int i, rc = 0;

    for (i = 0; i < concat->num_subdev; i++) {
        struct mtd_info *subdev = concat->subdev[i];
        if ((rc = subdev->suspend(subdev)) < 0)
            return rc;
    }
    return rc;
}
开发者ID:274914765,项目名称:C,代码行数:12,代码来源:mtdconcat.c


示例16: concat_write_ecc

static int
concat_write_ecc(struct mtd_info *mtd, loff_t to, size_t len,
                 size_t * retlen, const u_char * buf, u_char * eccbuf,
                 struct nand_oobinfo *oobsel)
{
    struct mtd_concat *concat = CONCAT(mtd);
    int err = -EINVAL;
    int i;

    if (!(mtd->flags & MTD_WRITEABLE))
        return -EROFS;

    *retlen = 0;

    for (i = 0; i < concat->num_subdev; i++) {
        struct mtd_info *subdev = concat->subdev[i];
        size_t size, retsize;

        if (to >= subdev->size) {
            size = 0;
            to -= subdev->size;
            continue;
        }
        if (to + len > subdev->size)
            size = subdev->size - to;
        else
            size = len;

        if (!(subdev->flags & MTD_WRITEABLE))
            err = -EROFS;
        else if (subdev->write_ecc)
            err = subdev->write_ecc(subdev, to, size,
                                    &retsize, buf, eccbuf, oobsel);
        else
            err = -EINVAL;

        if (err)
            break;

        *retlen += retsize;
        len -= size;
        if (len == 0)
            break;

        err = -EINVAL;
        buf += size;
        if (eccbuf)
            eccbuf += subdev->oobsize;
        to = 0;
    }
    return err;
}
开发者ID:jhbsz,项目名称:MI424WR_GEN2_Rev_E-F,代码行数:52,代码来源:mtdconcat.c


示例17: add_hooks

static BOOL add_hooks()
{
    wchar_t curFile[512];
    GetModuleFileNameW(NULL, curFile, 512);

    wstring f = strlower(wstring(curFile));

    // bail immediately if we're in a system process. We don't want to hook, log, anything -
    // this instance is being used for a shell extension.
    if(f.find(L"dllhost.exe") != wstring::npos || f.find(L"explorer.exe") != wstring::npos)
    {
#ifndef _RELEASE
        OutputDebugStringA("Hosting " STRINGIZE(RDOC_DLL_FILE) ".dll in shell process\n");
#endif
        return TRUE;
    }

    if(f.find(CONCAT(L, STRINGIZE(RDOC_DLL_FILE)) L"cmd.exe") != wstring::npos ||
            f.find(CONCAT(L, STRINGIZE(RDOC_DLL_FILE)) L"ui.vshost.exe") != wstring::npos ||
            f.find(L"q" CONCAT(L, STRINGIZE(RDOC_DLL_FILE)) L".exe") != wstring::npos ||
            f.find(CONCAT(L, STRINGIZE(RDOC_DLL_FILE)) L"ui.exe") != wstring::npos)
    {
        RDCDEBUG("Not creating hooks - in replay app");

        RenderDoc::Inst().SetReplayApp(true);

        RenderDoc::Inst().Initialise();

        return true;
    }

    RenderDoc::Inst().Initialise();

    RDCLOG("Loading into %ls", curFile);

    LibraryHooks::GetInstance().CreateHooks();

    return TRUE;
}
开发者ID:kvark,项目名称:renderdoc,代码行数:39,代码来源:win32_libentry.cpp


示例18: BitBangSPI_Master_Init

/**
 * \brief Initialize BitBangSPI Interface.
 */
void BitBangSPI_Master_Init(void)
{
#if SAM3N
	CONCAT(PORT, SPI_BB, _OER) =
			((1 << MOSI_BB) | (1 << SCK_BB) | (1 << PIO_SS));
	CONCAT(PORT, SPI_BB, _ODR) = (1 << MISO_BB);
	CONCAT(PORT, SPI_BB, _CODR) =
			((1 << MOSI_BB) | (1 << SCK_BB) | (1 << PIO_SS));
	CONCAT(PORT, SPI_BB, _SODR) = (1 << MISO_BB);
#else
	CONCAT(PORT, SPI_BB, _OER) = ((1 << MOSI_BB) | (1 << SCK_BB));
	CONCAT(PORT, SPI_BB, _ODR) = (1 << MISO_BB);
	CONCAT(PORT, SPI_BB, _CODR) = ((1 << MOSI_BB) | (1 << SCK_BB));
	CONCAT(PORT, SPI_BB, _SODR) = (1 << MISO_BB);
#endif
}
开发者ID:InSoonPark,项目名称:asf,代码行数:19,代码来源:BitBangSPI_Master.c


示例19: BitBangSPI_Send_Byte

/**
 * \brief  Send and Read one byte using BitBangSPI Interface.
 *
 * \param c  Data to send to slave.
 *
 * \return Data read from slave.
 */
static uint8_t BitBangSPI_Send_Byte(uint8_t c)
{
	uint32_t bit;
	volatile uint32_t i;

	for (bit = 0; bit < 8; bit++) {
		/* Write MOSI on trailing edge of previous clock */
		if (c & 0x80) {
			CONCAT(PORT, SPI_BB, _SODR) = (1 << MOSI_BB);
		} else {
			CONCAT(PORT, SPI_BB, _CODR) = (1 << MOSI_BB);
		}

		c <<= 1;

		/* Half a clock cycle before leading/rising edge */
		DELAY1US();

		CONCAT(PORT, SPI_BB, _SODR) = (1 << SCK_BB);

		/* Half a clock cycle before trailing/falling edge */
		DELAY1US();

		/* Read MISO on trailing edge */
		c |= ((CONCAT(PORT, SPI_BB, _PDSR) >> MISO_BB) & 0x01);
		CONCAT(PORT, SPI_BB, _CODR) = (1 << SCK_BB);
	}

	CONCAT(PORT, SPI_BB, _CODR) = (1 << MOSI_BB);

	for (i = 0; i < 50; i++) {
		DELAY50US();
	}

	return c;
}
开发者ID:InSoonPark,项目名称:asf,代码行数:43,代码来源:BitBangSPI_Master.c


示例20: concat_read_oob

static int
concat_read_oob(struct mtd_info *mtd, loff_t from, size_t len,
                size_t * retlen, u_char * buf)
{
    struct mtd_concat *concat = CONCAT(mtd);
    int err = -EINVAL;
    int i;

    *retlen = 0;

    for (i = 0; i < concat->num_subdev; i++) {
        struct mtd_info *subdev = concat->subdev[i];
        size_t size, retsize;

        if (from >= subdev->size) {
            /* Not destined for this subdev */
            size = 0;
            from -= subdev->size;
            continue;
        }
        if (from + len > subdev->size)
            /* First part goes into this subdev */
            size = subdev->size - from;
        else
            /* Entire transaction goes into this subdev */
            size = len;

        if (subdev->read_oob)
            err = subdev->read_oob(subdev, from, size,
                                   &retsize, buf);
        else
            err = -EINVAL;

        if (err)
            break;

        *retlen += retsize;
        len -= size;
        if (len == 0)
            break;

        err = -EINVAL;
        buf += size;
        from = 0;
    }
    return err;
}
开发者ID:jhbsz,项目名称:MI424WR_GEN2_Rev_E-F,代码行数:47,代码来源:mtdconcat.c



注:本文中的CONCAT函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ CONFIG函数代码示例发布时间:2022-05-30
下一篇:
C++ COM_ParseString函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap