dll編譯
这样的话可以考虑用前缀来避免重名的同时让c兼容代码和c++代码分离。在实现函数功能的c++风格的.h和.cpp文件中写://fun.h #pragma once int dll_get_time();//fun.cpp #include "fun.h" #include<vector> #include<thread> int dll_get_time() { return...
View Articledll編譯
如果你在cpp文件里面加一个extern "C",那就相当于是把.h和.cpp合并在一起了,等于是把.h里面的extern "C" int get_time()这一句和.cpp里面的函数定义合并了。用法倒是没问题,只是维护起来就难了,如果另一个cpp里也有了get_time那应该给哪一个加上extern...
View Articledll編譯
使用def时函数名绝对不能重名,重载都是不行的,比如fun()和fun(int),这样的重载都是不允许的,有重名就必须使用.h文件。补充说明一下:def用于c语言兼容dll,相当于.h里面的extern...
View Articledll編譯
有點像是您的DLL提供的get_time函式和std namespace提供的get_time函式因名稱相同形成重覆定義的錯誤, 如果您自己的get_time函式(定義在cmd.c或cmd.cpp)是C函式, 您可以將叫用get_time函式的語法改成::get_time, 再試看看:原寫法:get_time(參數);改成:::get_time(參數);
View Articledll編譯
我有一個導出函式叫get_time,我使用模組定義檔的時候,如果我有使用到檔頭#include<vector> #include<thread>就會出現以下的錯誤。如果把使用的那2個檔頭註解掉就一切正常。請問我要如何做才能使用檔頭又能編譯正常呢?
View Article