FakeGame 集成总结

时间:2023-03-09 15:34:05
FakeGame 集成总结
1、64位支持(目前编译不过);
2、Dx9?
2、以何种方式提供(源码?工程版本(VS2005还是其他));
3、是否可以连接TC的服务器进行调试?

TDR编解码失败:
不同目录下存在a.lib的不同版本,vs会根据她找到的第一个版本进行链接,第一个版本如果是旧的,有可能就错误了。



c++开发软件过程中,有时候会出现LNK1103: debugging information corrupt这样的链接错,导致这种错误的原因,是链接的库出了问题。解决方案一般如下:

第一种,如果是自己的库,把这个库重新编译一下。

第二种方案,改变链接库的寻找顺序。把windows的sdk的头文件和库的目录移动到最下面。

第三种方案,修改工程属性,关闭“Generate Debug infomation”,这样这个链接错误也能去掉,如果前两种方案不能解决的时候,才应该使用。因为这种方案,非常暴力,只有实在没方法的时候,才应该使用。


Vs2015的工程链接Vc12编译的lib出现的问题解决

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。


其实这里提供了一个思路,找不到symbol的时候可以自己定义
FILE _iob[] = { *stdin, *stdout, *stderr };

extern "C" FILE * __cdecl __iob_func(void)
{
    return _iob;
}