阅读:2291回复:4
★★★★★★★怪!使用extern \"C\" 出错syntax error \"string\"★★★★★★★
请教专家:
我在使用两个驱动程序之间函数调用的出现上面的怪问题, 我在其中的一个.sys驱动程序中输出了一个函数,在另外一个驱动进行调用的时候出了大问题 如果这样宣称extern __declspec(dllimport) void _stdcall test(); 编译提示error LNK2001: unresolved external symbol __imp__test@0 objchk\\i386\\mydriver.sys() : error LNK1120: 1 unresolved externals 如果这样宣称extern \"C\" __declspec(dllimport) void _stdcall test(); 编译提示error C2059: syntax error : \'string\' error C4013: \'test\' undefined; assuming extern returning int 没招,搞不定 |
|
|
沙发#
发布于:2003-12-16 16:58
斑竹:
请指导一下菜鸟!:) |
|
|
论坛版主
|
板凳#
发布于:2003-12-17 16:37
两个驱动分开编译的?分开肯定不行,但放在一起我觉得不对吧,要在一个驱动用另外一个例程可以在一个里面找到第二个驱动的数据空间(比如第二个得设备扩展)在将第二个的例程地址放到里面,第一个就直接调用好了,得到设备对象的指针用IoGetDeviceObjectPointer
|
|
地板#
发布于:2003-12-19 11:07
提供API的驱动要设置成为Export_driver,并且添加一个.def文件,指明那些函数要export,编译成功后,会生成一个.lib文件,将这个.lib文件加入到调用的驱动里面,就可以连接通过了。
|
|
地下室#
发布于:2003-12-19 11:07
其实驱动的调用方式,跟调用动态连接库语法都一样。
|
|