最近在弄WP7调用非托管代码的问题。
我在VS2008中建立了ATL Smart Device Project,然后编译出的DLL在WM和WP7上都是可以用的。
然后我建立了一个Win32 Smart Device Project,选了一个空项目,自己加入.h和.cpp,
extern "C" __declspec(dllexport) int AddMethod(int nNum1,int nNum2);
通过DllImport在WM上可以使用,WP7上不能使用,因为WP7必须要COM组件。
第一个问题就是,在创建Win32 Smart Device Project时,如果不选择空项目,会包含一个DllMain的DLL入口方法,请问这个入口方法具体干嘛?因为前面建的空项目没有这个方法也能被WM调用。
第二个问题是,在创建Win32 Smart Device Project时,还有ATL的选择,说是build in ATL库,请问这个有什么用?ATL项目与偶什么区别
第三个问题是,如果比如我创建了一个MFC Smart Device Project后,里面定义了一个类,我在这个类中写入了一个Add方法,如何让WM上能调用到这个类的方法? 是否还是使用DllImport,那应该怎么写呢?因为方法是包含在类中。
平时工作并不涉及到C++写COM和MFC,只是在弄WP7调用DLL时对这有写疑问,想了解一下。