İşaretçiler ve Bellek Ayırma
İşaretçiler aracılığıyla belleği değiştirme özelliği genellikle sunucunun ve istemcinin dizideki öğeler için yeterli bellek ayırmasını gerektirir.
Saplamanın belleği ayırması veya boşaltması gerektiğinde, midl_user_allocate ve midl_user_freeişlevlerini çağıran çalışma zamanı kitaplığı işlevlerini çağırır. Bu işlevler, çalışma zamanı kitaplığının bir parçası olarak dahil değildir. Bu işlevlerin kendi sürümlerini yazmanız ve bunları uygulamanızla ilişkilendirmeniz gerekir. Bu şekilde, belleğin nasıl yönetileceğini belirleyebilirsiniz. IDL dosyanızı OSF uyumluluğu (/osf) modunda derlerken bu işlevleri uygulamanız gerekmez. Bu işlevleri aşağıdaki prototiplere yazmanız gerekir:
void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)
void __RPC_API midl_user_free(void __RPC_FAR * ptr)
Örneğin, bir uygulama için bu işlevlerin sürümleri standart kitaplık işlevlerini çağırabilir:
void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)
{
return(malloc(len));
}
void __RPC_API midl_user_free(void __RPC_FAR * ptr)
{
free(ptr);
}