我想向dll里传入一个句柄。
建立了两个工程 C:\XXXdll(普通dll工程) 和 C:\test(控制台程序).然后在XXXdll.h里声明:
extern __declspec(dllimport) HWND hWndInDll;XXXdll.cpp里:
#pragma data_seg (".shared")
HWND    hWndInDll = NULL;
#pragma data_seg ()编译后成功生成了XXXdll.dll文件。在test里:
...
#include "..\XXXdll.h"
int main(){
    HWND s = FindWindow(...);
    hWndInDll = s;     //这里可不可以这样赋值给dll里的变量 ???    HMODULE hMou = LoadLibrary("c:\\XXXdll\\Release\\XXXdll.dll");
    .......
}请问我上面的做法有问题吗??能实现我的目的吗?
手上没有VC,用的是RadASM,编译test工程,连接的时候老是提示:
unresolved external symbol "__declspec(dllimport) struct HWND__ * hWndInDll " 

解决方案 »

  1.   

    回LS:
    “用dll的导出函数赋值”
    ----------------------------
    由于某些原因,不能用这种方法赋值。
    我想直接向dll里的变量赋值
      

  2.   

    用指针试试吧
    楼主的要求很怪
    恕我才疏
    没见过这样赋值的Sample
      

  3.   

    http://www.vcgood.com/forum_posts.asp?TID=1543&PN=1
      

  4.   

    这个DLL 是要注入到别的进程里去的,所以如果用导出函数的话,导出函数的地址在别的进程里不好得到。
    #include "..\XXXdll.h" 这里不小心写错了,是#include "..\XXXdll\XXXdll.h"请教deterly(原来最困难的问题是1+1=?) :
    用指针的话怎么做??