Lua µ÷ÓÃCдµÄ¶¯Ì¬¿âÓöµ½µÄÎÊÌâ¼°½â¾ö
×î½üÒ»¸öÏîÄ¿ÓÃlua5.1.4ºÍc++ÁªºÏ¿ª·¢¡£ÔÚ¿ª·¢µÄ¿ªÊ¼½×¶ÎÓöµ½ÁËÒ»µãÎÊÌ⣬ÎÊÌâÈçÏ£º
ÓÃÃüÁîÐÐÔËÐУºlua test.lua
lua: error loading modules 'dllforlua' from file './dllforlua.dll':
ÕÒ²»µ½Ö¸¶¨µÄ³ÌÐò¡£
ÒòΪÊǵÚÒ»´ÎʹÓã¬Õâ¸öÎÊÌâÀ§ÈÅÁËÎҺü¸Ìì¡£¾¹ý¶à·¬²âÊÔ£¬·¢ÏÖÈçϹæÂÉ£º
Èç¹ûÓÃrequireµ÷ÓõÄʱºò£¬C¶¯Ì¬¿âµÄÎļþÃû±ØÐëÒªÓëµ¼³öº¯Êý±£³ÖÒ»Ö¡£
ÀýÈ磺¶¯Ì¬¿âÃû×Ö£ºtestlua.dll£¬ÄÇôµ¼³öº¯Êý±ØÐëÈçÏ£º
extern "C"
LUALIB_API int luaopen_testlua(lua_State *L) {
lua_register(L, "average", lua_average);
return 0;
}
ÁíÍâÒ»ÖÖ½â¾ö·½·¨£¬ÓÃpackage.loadlib£¨¾ø¶Ô·¾¶.dll, "µ¼³öº¯ÊýÃû")
È»ºóµ÷ÓÃÕâ¸öµ¼³öº¯Êý
dllentry = package.loadlib("D:\\myprogram\\Lua\\firstC\\Release\\luatest.dll", "luaopen_suibian")
dllentry()
avg, sum = average(10, 20, 30, 40, 50)
print("The average is ", avg)
print("The sum is ", sum)
˵Ã÷£ºluatest.dllÊǶ¯Ì¬¿âµÄÃû×Ö£¬luaopen_suibianÊǵ¼³öº¯ÊýÃû£¬2Õß¿ÉÒÔ²»Ò»Ö¡£
½¨ÒéÓõÚÒ»ÖÖ·½Ê½¡£
Ïà¹ØÎĵµ£º
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main()
{
char a = 'a';
......
±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û¡£
¡¡¡¡Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔõÑùµÄ³Ì¶È£¬Î ......
C/C++/VC++ ±äÁ¿ÃüÃû¹æÔò
ÊÇVC++µÄô£¿
4.±äÁ¿·ç¸ñ
±äÁ¿¾¡Á¿²ÉÓÃÐÙÑÀÀûÃüÃû·¨£¬Í¬Ê±½áºÏVCµÄÔÔò£»Ò»°ãÇé¿öÏ£¬±äÁ¿µÄÈ¡Ãû·½Ê½Îª£º
<scope><prefix><qualifier>
ÓйØÏîÄ¿µÄÈ«¾Ö±äÁ¿±ØÐëÓÃg_¿ªÊ¼£¬Àà³ÉÔ±±äÁ¿ÓÃm_£¬¾Ö²¿±äÁ¿Èôº¯Êý½Ï´óÔò¿É¿¼ÂÇÓÃl_ÓÃÒÔÏÔʾ˵Ã÷ÆäÊǾֲ¿±äÁ¿¡£
ǰ׺
ÀàÐÍ
ʾÀý
g_
......
ÎÊ£º
ÔÚ¹¹Ôì»òÎö¹¹ÆÚ¼äÄÜʹÓÃÐ麯ÊýÂð£¿
´ð£º
ÄÜ£¬µ«×îºÃ²»ÒªÕâô×ö¡£
ǰÁ½ÌìÔÚ¹«Ë¾ÓÎÏ·ÏîÄ¿¿ª·¢¹ý³ÌÖУ¬ÔÚÎö¹¹º¯ÊýÖв»Ð¡Ðĵ÷ÓÃÁËÐ麯Êý£¬¶øÇÒ»¹ÊǸö´¿Ð麯Êý¡£
ÒòΪһֱÊÇÔÚRleaseģʽϹ¤×÷µÄ£¬µ¼ÖÂϵͳֱ½ÓÖÕÖ¹¿Í»§¶Ë£¬ËäÈ»¿ØÖÆÌ¨ÓдòÓ¡Õâ¸ö´íÎ󣬵«ÖÕֹ̫¿ì£¬Ò²Ã»¿´µ½¡£Çл»ÔÚDebugϵ÷ÊÔ£¬Ôò»á±¨R6025 -pure vir ......
vaϵÁкêµÄÓ÷¨µÄÒ»°ã²½Ö裺
vsptr(char *format, ...) //ÇмǴ˴¦µÄ¸ñʽ
{
va_list argptr;
va_start(argptr, format); //ʹµÃargptrÖ¸ÏòÒÔformat¿ªÍ·µÄ´æ´¢¿Õ¼ä
va_arg(argptr, type); //È¡´«µÝµÄ²ÎÊý
......