能力值:
( LV2,RANK:10 )
|
-
-
2 楼
使用 dllexport 来导出函数
指定共享段属性用#pragma comment(linker,"/SECTION:.MYSEC,RWS")
这样就可以省去def文件
|
能力值:
( LV13,RANK:1050 )
|
-
-
3 楼
呵呵,除了使用 dllexport 来导出函数外,还可以使用
例如:
int __stdcall MyExportFunction(int iTest);
要导出这个函数,可以用
#pragma comment(linker,"/EXPORT:MyExportFunction=_MyExportFunction@4")
其中:编译生成的_MyExportFunction@4函数名,跟调用约定,函数名,函数参数的个数有关。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
我这样写,编译通不过去呢
extern "C" _delcspec(dllexport) _stdcall int Max(int a, int b)
{
if(a>=b)return a;
else
return b;
}
|
能力值:
( LV13,RANK:1050 )
|
-
-
5 楼
_delcspec写错了,应该是_declspec
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
#include "windows.h"
#pragma comment(linker,"/subsystem:windows /dll")
#pragma comment(linker,"/out:debug/mytest.dll")
#pragma comment(lib,"ws2_32.lib")
extern "C" _declspec(dllexport) _stdcall int Max(int a, int b)
{
if(a>=b)return a;
else
return b;
}
编译后,如下错误。。。。。。。。。
Deleting intermediate files and output files for project 'mytest - Win32 Debug'.
--------------------Configuration: mytest - Win32 Debug--------------------
Compiling...
main.cpp
d:\mytest\main.cpp(8) : warning C4518: 'int ' : storage-class or type specifier(s) unexpected here; ignored
d:\mytest\main.cpp(8) : warning C4230: anachronism used : modifiers/qualifiers interspersed, qualifier ignored
Linking...
main.obj : warning LNK4070: /OUT:debug/mytest.dll directive in .EXP differs from output filename "Debug/mytest.exe"; ignoring directive
Creating library debug/mytest.dll and object debug/mytest.exp
LINK : fatal error LNK1104: cannot open file "Debug/mytest.lib"
Error executing link.exe.
mytest.exe - 1 error(s), 3 warning(s)
|
能力值:
( LV13,RANK:1050 )
|
-
-
7 楼
哈哈,我修改了一下:
***************************************************************
#include "windows.h"
#pragma comment(linker,"/subsystem:windows /dll")
#pragma comment(linker,"/out:jiang.dll")
#pragma comment(lib,"ws2_32.lib") extern "C" __declspec(dllexport) int __stdcall Max(int a, int b)
{
if(a>=b)return a;
else
return b;
}
*************************************************************
然后保存为文件:c:\jiang.cpp
接下来,命令行编译:
cl /c jiang.cpp
link jiang.obj
|
能力值:
( LV7,RANK:100 )
|
-
-
8 楼
哈哈,我修改了一下:
***************************************************************
#include "windows.h"
#pragma comment(linker,"/subsystem:windows /dll") #pragma comment(linker,"/out:jiang.dll") #pragma comment(lib,"ws2_32.lib")
大牛,领教!!! 最近俺们也在学编程,呵呵
|
能力值:
( LV6,RANK:90 )
|
-
-
9 楼
谢谢
学习了。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
多谢多谢,试验成功了
我想问的问题是:关于这三条命令该如何弄,才能保证下次开机时不用再次输入呢???
是写入批处理吗???
|
能力值:
( LV13,RANK:1050 )
|
-
-
11 楼
直接在windows里面添加环境变量,在我的电脑上点右键,选择。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
不好意思,我太菜了,关于配置环境变量,我还是弄不好
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
faint 直接在环境变量里加
|
|
|